设置所有标签,文本字段和按钮(..... layer.cornerRadius = 10)

时间:2015-01-26 20:40:13

标签: objective-c

如何将ViewController上的所有标签,文本字段和按钮设置为... layer.cornerRadius = 10?例如有一个声明?或者必须全部单独设置?

2 个答案:

答案 0 :(得分:0)

您可以将它们全部放在IBOutletCollection中,这是一个通过Interface Builder生成的数组。与创建插座的方式类似,请在出现的弹出窗口中选择Outlet Collection。然后拖动要在其中迭代的所有其他UI项目。但请注意,集合中的所有项目必须是同一类型。因此,如果您有标签和按钮,则每个都需要一个单独的集合。

或者,您可以创建每个类型的单独子类,并设置其角半径(因为您显然经常使用该控件样式)并在Interface Builder中使用这些类。

答案 1 :(得分:0)

1)对类进行子类化并添加UIAppearance角半径属性。这将为您提供可重复使用的类,您可以在具有不同角半径值的不同视图控制器中使用这些类。您必须创建3个新类,并在添加新项目时记得在Interface Builder中设置所有类。

2)假设所有内容都包含在同一视图中,您可以遍历所有子视图并检查类。如果您最终使用嵌套视图,则还需要检查这些子视图。不是最干净的,但如果它是一个简单的视图,这是一个很好的选择。

for (UIView *view in self.view.subviews)
{
    if ([view isKindOfClass:[UILabel class]] || [view isKindOfClass:[UIButton class]] || [view isKindOfClass:[UITextField class]])
    {
        view.layer.cornerRadius = 10.f;
    }
}

3)您可以创建IBOutletCollection并以相同的方式循环遍历它,而无需检查类。随着时间的推移添加/删除项目,这会变得很烦人。