1

uitableViewCellの(非表示->非表示)からアニメーション化されたボタンがあります。

tableViewCellには、imageviewとボタンが同じ位置にあります。ユーザーがtableviewからtableviewcellのいずれかを選択すると、imageViewが非表示にアニメーション化され、ボタンが表示にアニメーション化されます。2つのビュー(imageView&button)がxibファイルから読み込まれます。 。ボタンにアクションを追加し、それをIBActionメソッドにリンクしました。

私の質問:ユーザーがボタンをタッチしても、アクションメソッドが呼び出されていないのはなぜですか?

[UIView beginAnimations:cell.id context:nil];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(focusCellFinished:finished:context:)];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:cell.containerView cache:YES];
cell.imagePhoto.hidden = true;
cell.playButton.hidden = false;
[UIView commitAnimations];

ユーザーがボタンを選択すると、tableView:didSelectRowAtIndexPath:が呼び出されます。これは必要ありません。ボタン・メソッドを呼び出したいだけです。

ところで、私は知っていて、アニメートが消えることなく通常のボタンを追加するだけで、ターゲットアクションを追加して正常に呼び出すことができます。

どんな答えやコメントもいただければ幸いです、ありがとう。

4

1 に答える 1

0

このようにしてみてください、

[UIView beginAnimations:cell.id context:nil];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(focusCellFinished:finished:context:)];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:cell.containerView cache:YES];
cell.imagePhoto.transform =CGAffineTransformMakeTranslation (-100,30);
cell.playButton.transform =CGAffineTransformMakeTranslation (100,30);
[UIView commitAnimations];

ここではCGAffineTransformMakeTranslation (x,y);、フレームの位置に応じての値を変更します

于 2012-11-23T04:21:38.987 に答える