1

月曜日から日曜日まで 7 つのスイッチがあり、7 つのスイッチすべてをコントローラに接続する必要があります。それらを別々に接続するのは本当に厄介です:

@property (strong, nonatomic)IBOutlet UISwitch *switch1;
@property (strong, nonatomic)IBOutlet UISwitch *switch2;
@property (strong, nonatomic)IBOutlet UISwitch *switch3;
...
@property (strong, nonatomic)IBOutlet UISwitch *switch7;
// It gets worse when you have even more switches

代わりに、NSArray *switchArr7 つのスイッチを保持し、スイッチ 1 を switchArr[1] に、スイッチ 2 を switchArr[2] などに接続することは可能ですか?

4

3 に答える 3

2

IB の単一のスイッチを右クリックし、[新しい参照アウトレット コレクション] から .h ファイルにドラッグして、新しいアウトレット コレクションを作成します。プロパティが表示されるはずです

@property (strong, nonatomic) IBOutletCollection(UISwitch) NSArray *switches;

作成した。他のすべてのスイッチをそのプロパティにドラッグすることを繰り返します。

于 2013-10-30T19:08:40.460 に答える
1

スイッチを配列内に配置する順序で各スイッチのタグを設定します。他のビューとの競合を避けるために 10 からタグ付けを開始できます。次に、viewDidLoad でビューを可変配列に格納できます。次のようになります。

NSMutableArray *switches = [[NSMutableArray alloc] init];
NSInteger initialTag = 10; //set your initial tag
for(NSInteger i = initialTag; i < initialTag + 7; i++) {
    [switches addObject:[self.view viewWithTag:i]];
}
于 2013-10-30T19:58:30.140 に答える
0

さて、あなたはこのようなことをすることができます

@property (strong, nonatomic)IBOutletCollection(UISwitch) NSArray * switches;
于 2013-10-30T19:14:30.927 に答える