2013-05-03 18 views
6

私は、各UICollectionViewCellにサブビューとしてUIButtonがあるUICollectionViewを持っています。 UIButtonsは問題なくタップに応答しますが、ターゲットは起動しますが、ボタン自体は選択された状態に変わりません(ボタンのルック・アンド・フィールに変更はありません)。 UICollectionViewCellがボタンにタッチイベントを正しく転送していないために感心していますが、わかりません。そうであっても、このシナリオでボタンの状態が適切に変わるように設定するにはどうすればよいですか?UICollectionViewCellのUIButtonサブビューが制御状態を変更しない

答えて

12

UIScrollview(したがってUICollectionViewすぎて)それはYESに設定されているデフォルトでdelaysContentTouchesというプロパティがあり、NOにこれを変更し、それをすることになっているようなあなたのボタンがハイライトすべきです。

+0

美しい!完璧に働いた。不思議なことに、そのプロパティに関する関連ドキュメントは次のとおりです。 'スクロールビューがタッチダウンジェスチャーの処理を遅らせるかどうかを決定するブール値。 このプロパティの値がYESの場合、スクロールビューは、スクロールが意図かどうかを判断できるまで、タッチダウンジェスチャの処理を遅らせます。値がNOの場合、スクロールビューは直ちにtouchesShouldBegin:withEvent:inContentView:を呼び出します。デフォルト値はYESです.' –

0

私は選択肢を提案することができる場合は、UICollectionViewは、そのセルにクリックを扱うことができる...あなたが画像を見てのように発生する特定のイベントを探している場合

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { } 

と呼ばれる素晴らしいデリゲートメソッドを持っていますボタンの状態に変更すると、そのボタンを押したときにボタンを押すと別のことをするボタンが放されます。

も同様に

UIControlStateSe受諾された コントロールの選択状態。多くのコントロールでは、この状態は動作や外観に影響しません。しかし、他のサブクラス(UISegmentedControlクラスなど)は、選択した状態によって異なる外観を持つことがあります。選択したプロパティを使用してこの値を取得および設定できます。 laymens用語で

は... UIButtonのために「選択された状態では、」何もしない...

ボタンがクリックされた場合の暗くすると仮定され、あなたがそれを行う必要があり、ことやっていない場合私はあなたがやろうとしているかを正確にわからないプログラムであれば、しかし...

調光機能が強調表示状態

UIControlStateHighlighted制御の 強調表示された状態でです。コントロールは、トラッキング中にタッチが出入りするとき、およびタッチアップイベントがあるときにこの状態に入る。強調表示されたプロパティでこの値を取得および設定できます。 laymens用語で

、あなたはボタンが適切に状態を変更された場合は、この

[button addTarget:self action:@selector(functionToCall:) forControlEvents:UIControlEventAllTouchEvents]; 

NSLog(@"Selected: %i", button.selected); 
NSLog(@"Highlighted: %i", button.highlighted); 
NSLog(@"Normal State or not: %i", button.state); 

「functionToCallは、任意のタイプと呼ばれるような何かを行うことができます参照してください

を強調していますボタンをタッチtouchもボタンに起こります。その関数では、3つのNSLogをコンソールに表示し、異なるUIControlState値を出力することができます。これは、ボタンが正しく動作していることを示し、UIViewCollectionエラーであることを示しますUICollectionView ...ボタンをプログラムで微調整する必要があります:3

願っています!

+0

プログラムで強調表示された状態にボタンを設定しようとしましたが、それでも機能しませんでした。 –

関連する問題