如何一个UIView内一个UIScrollView内访问所有UIButtons?(How To Ac

2019-09-28 14:58发布

我使用了以下尝试访问位于一个UIView内一个UIScrollView内的所有UIButtons。 问题是,该代码似乎并没有找到按钮和设置边框属性。

UIView的 - > UIScrollView中 - > UIButtons。

我基本上要通过按键循环,并设置边框属性。

for(UIView *v in [self.viewLightLeakChoices subviews]) {

    if([v isKindOfClass:[UIButton class]]) {

        v.layer.borderWidth = 0;

    }

}

Answer 1:

试试这一个,而不是

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;
    }
}

产量



Answer 2:

感谢您的帮助球员。 最后我做了一堆的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;

            }

        }

    }

}


Answer 3:

先的确保你能获得的子视图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;
    }
}


Answer 4:

我无法得到我期待你有滚动视图 - > 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;
        }
    }
}


Answer 5:

你应该有创建Button类说myButton的程度的UIButton,如果你这样做有通过滚动视图的子视图无需循环。

实现awakeFromNib方法,并应用边界,应用边框请参阅本SO后如何在UIButton的创建边界?



文章来源: How To Access All UIButtons within a UIScrollView within a UIView?