0

UIButtons同じタグが15個あります

それらすべてを選択/アクセスするにはどうすればよいですか?

最終的に、イベントトリガーでそれらすべてのプロパティを変更したいのですが、15 の異なる IBOutlets を作成したり、それらを配列に入れたりしたくありません..

編集:1つの要素にアクセスできることはわかっています

UIButton *btn= (UIButton *)[self.view viewWithTag:12];

しかし、同じタグまたは他のプロパティを持つ複数にアクセスするにはどうすればよいでしょうか

4

2 に答える 2

3

NSArrayオプションの方が簡単です。次のように単一のコンセントを構成できます。

@property (weak, nonatomic) IBOutletCollection (UIButton) NSArray *buttons;

タグを使用するには、再帰的な検索アルゴリズムを記述する必要があります (ボタンが任意のコンテナー ビューにあると仮定します)。

于 2013-05-23T20:56:56.513 に答える
1

if ステートメントを記述してサブビューをループする正しい方法は次のとおりです。

for (id aSubview in self.view.subviews){
    if ([aSubview isKindOfClass:[UIButton class]] &&  ([(UIButton *)aSubview tag] == 42)) {
         NSLog(@"found button with tag 42");
         // do whatever here
     }
}
于 2013-05-23T21:46:14.510 に答える