我使用了以下尝试访问位于一个UIView内一个UIScrollView内的所有UIButtons。 问题是,该代码似乎并没有找到按钮和设置边框属性。
UIView的 - > UIScrollView中 - > UIButtons。
我基本上要通过按键循环,并设置边框属性。
for(UIView *v in [self.viewLightLeakChoices subviews]) {
if([v isKindOfClass:[UIButton class]]) {
v.layer.borderWidth = 0;
}
}
试试这一个,而不是
for (id obj in scrollView.subviews) {
NSString *classStr = NSStringFromClass([obj class]);
if ([classStr isEqualToString:@"UIButton"]) {
UIButton *button = (UIButton*)obj;
button.layer.borderWidth = 2.0;
button.layer.borderColor = [UIColor greenColor].CGColor;
}
}
产量
感谢您的帮助球员。 最后我做了一堆的for循环来踏踏实实地UIButtons。
for(UIView *v in [self.viewLightLeakChoices subviews]) {
if([v isKindOfClass:[UIScrollView class]]) {
for(UIView *subView in [v subviews]) {
for(UIButton *btn in [subView subviews]) {
btn.layer.borderWidth = 0;
}
}
}
}
先的确保你能获得的子视图UIScrollView
因为您的结构
的UIView>的UIScrollView>的UIButton
如果你只有1滚动视图self.viewLightLeakChoices
然后设置滚动型标签= 1000,可直接进入你的滚动视图所以现在你不需要使用循环。 和执行将是快。
UIScrollView *scrlV = [self.viewLightLeakChoices viewWithTag:1000];
for (UIButton *btn in scrlV.subviews)
{
if ([btn isKindOfClass:[UIButton Class]]) {
btn.layer.borderWidth = 1.0;
btn.layer.borderColor = [UIColor whiteColor].CGColor;
}
}
我无法得到我期待你有滚动视图 - > UIView的 - >按钮
for(UIView *myview in Scrollview.subviews)
{
for ( id mybutton in myview.subviews)
{
if ([mybutton isKindOfClass:[UIButton class]])
{
UIButton *mybtn=(UIButton *)mybutton;
mybtn.layer.borderWidth=0;
}
}
}
你应该有创建Button类说myButton的程度的UIButton,如果你这样做有通过滚动视图的子视图无需循环。
实现awakeFromNib方法,并应用边界,应用边框请参阅本SO后如何在UIButton的创建边界?