それ自体がuiscrollviewにあるuiviewでボタンを作成、追加、タグ付けするコードがあります。ある時点で、特定のタグが付いたボタンの一部を変更しようとします(背景色と画像)。問題は、タグ0の最初のボタンを選択した場合、uiscrollviewまたはuiviewのいずれにもそのメソッドが使用できないため、画像変更のためにforループ爆弾が出力されます。しかし、私はビュー内のボタンを外すだけをターゲットにしようとしています(すべて同期されています)。他のボタンを選択すると、期待どおりに機能します。代わりにタグを0から1にオフセットすることもできますが、forループが機能しない理由を知りたいです。
for (int i=0; i<[devicesArray count]; i++) {
NSLog(@"red %i", i);
for (UIView *subview in [uiv_ButtonsView subviews]) {
if([subview isKindOfClass:[UIButton class]]) {
int number = [[devicesArray objectAtIndex:i] intValue];
subview.alpha=1.0;
[[subview viewWithTag:number] setBackgroundColor:[UIColor redColor]];
UIButton *btttn = (UIButton *)[subview viewWithTag:number];
[btttn setBackgroundImage:nil forState:UIControlStateNormal];
}
}
}
ありがとう-これは現在機能しているコードです:
for (int i=0; i<[devicesArray count]; i++) {
int number = [[devicesArray objectAtIndex:i] intValue];
[[uiv_Quilt viewWithTag:number] setBackgroundColor:[UIColor redColor]];
[[uiv_Quilt viewWithTag:number] setBackgroundImage:nil forState:UIControlStateNormal];
}