我想在我拥有的每九个网点(UIButton,名为btn1,btn2,btn3 ... btn9)中做一个循环,例如:
for(int i = 0; i < 9; i++) {
[[btn(%@), i] setImage:someOne forState:UIControlStateNormal]; // I know that this is ridiculous, but it's just a way to demonstrate what I'm saying. :-)
}
任何提示?
非常感谢!
答案 0 :(得分:2)
您可能需要查看IBOutletCollection
(apple doc here),这样您就可以将多个按钮连接到同一个插座,并像常规NSArray
那样访问它们。
答案 1 :(得分:1)
让你想要循环的所有出口在一个单独的视图中循环。
for(int subviewIter=0;subviewIter<[view.subviews count];subviewIter++)
{
UIbutton *button = (UIbutton*)[view.subviews objectAtIndex:subviewIter];
// Do something with button.
}
答案 2 :(得分:0)
创建UIButton
时,可以设置按钮的tag属性。现在有几种方法可以访问该按钮,例如一个 -
NSArray *subViews = self.view.subviews;
for (int index = 0; index < [subViews count]; index++) {
if ([subViews objectAtIndex:index] isKindOfClass:[UIButton Class]) {
//Button is accessible now, Check for tag and set image accordingly.
}
}
答案 3 :(得分:0)
如果您想这样做,您应该考虑集合所有UIView实例或您的情况:按钮。 我建议您将所有按钮添加到数组或任何其他类型的数据格式,以帮助您管理对象。
如果您不想为此目的使用外部对象,我建议您将所有按钮添加到superview,然后,您将能够使用以下命令迭代superview的子视图:mySuperview.subviews属性。
您可以在初始化后立即为每个按钮(标记)提供唯一的ID号,然后您可以使用给定的标记访问按钮:
myButton.tag = 1;
//Access the button using:
UIButton *b = (UIButton *) [superview viewWithTag:1];