私は、各UICollectionViewCellにサブビューとしてUIButtonがあるUICollectionViewを持っています。 UIButtonsは問題なくタップに応答しますが、ターゲットは起動しますが、ボタン自体は選択された状態に変わりません(ボタンのルック・アンド・フィールに変更はありません)。 UICollectionViewCellがボタンにタッチイベントを正しく転送していないために感心していますが、わかりません。そうであっても、このシナリオでボタンの状態が適切に変わるように設定するにはどうすればよいですか?UICollectionViewCellのUIButtonサブビューが制御状態を変更しない
答えて
はUIScrollview
(したがってUICollectionView
すぎて)それはYESに設定されているデフォルトでdelaysContentTouches
というプロパティがあり、NOにこれを変更し、それをすることになっているようなあなたのボタンがハイライトすべきです。
私は選択肢を提案することができる場合は、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
願っています!
プログラムで強調表示された状態にボタンを設定しようとしましたが、それでも機能しませんでした。 –
- 1. カスタムUIButtonの状態を変更する
- 2. UIButtonの遅延状態の変更
- 3. 状態と制御可能なゲームオブジェクト
- 4. ポップアップウィンドウの状態を制御する
- 5. の制御次のボタンの状態は
- 6. UIButtonの状態が変更されたときにアクションを実行します。
- 7. オリエンテーションの制御はサブビュー内から変更されます
- 8. ネットワーク状態を確認し、プログラム内のPPPを制御する
- 9. HTTP要求を使用したBokehプロット状態の制御
- 10. IOS、UIView、サブビューの隠し状態の変化を検出する
- 11. UIButton - ハイライト状態の丸い角
- 12. 変更状態(JS)
- 13. ジョブの状態をユーザーに知らせるための制御
- 14. セッションでPHP WebAppの状態を制御する
- 15. シェルコマンド(at91sam9260ボード)でgpioの状態を制御/チェックする方法
- 16. エンティティの状態を変更します。
- 17. 古典的なASP - ページ状態が変更されない
- 18. パーサーからのPython PLYレクサー状態の制御
- 19. In App Purchaseの状態がSKPaymentTransactionStatePurchasedに変更されない
- 20. WebSocketクライアントの状態がネットワーク損失で変更されない
- 21. 親状態の変更で子コンポーネントが再レンダリングされない
- 22. componentWillReceiveProps状態が還元状態更新後のレンダリング状態と異なる
- 23. ステートマシン:外部イベントなしで状態を変更する方法(過渡状態)?
- 24. ボタン状態が更新されない
- 25. ASPログイン制御 - ログイン状態を確認する
- 26. UIButton選択したUIButtonをクリックしたときにハイライト状態が表示されない
- 27. MonogoDBレプリカセットの状態スタートアップからセカンダリに変更しない
- 28. UIButtonの状態変化を追跡するソリューション
- 29. JQuery ...フォーカスのホバー状態を変更し、キーボードナビゲーションタブエリアを制限します
- 30. IBなしでビュー上でUIButtonを制御する方法
美しい!完璧に働いた。不思議なことに、そのプロパティに関する関連ドキュメントは次のとおりです。 'スクロールビューがタッチダウンジェスチャーの処理を遅らせるかどうかを決定するブール値。 このプロパティの値がYESの場合、スクロールビューは、スクロールが意図かどうかを判断できるまで、タッチダウンジェスチャの処理を遅らせます。値がNOの場合、スクロールビューは直ちにtouchesShouldBegin:withEvent:inContentView:を呼び出します。デフォルト値はYESです.' –