如何访问UIView内的UIScrollView中的所有UIButtons?
我正在使用以下尝试访问位于UIView内的UIScrollView内的所有UIButtons。 问题是代码似乎没有findbutton并设置边框属性。
UIView – > UIScrollView – > UIButtons。
我基本上想通过button循环,并设置边框属性。
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
如果你在self.viewLightLeakChoices中只有1个滚动视图,那么设置你的scrollview标签= 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; } }
我无法得到我期待你有scrollview – > uiview – >button
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; } } }
你应该创buildButton类,如MyButton范围的UIButton,如果你这样做,没有必要循环滚动视图的子视图。
执行awakeFromNib方法并应用边框,以应用边框参考这篇SOpost如何在UIButton中创build边框?