UIScroll及其嵌套元素

时间:2011-08-30 17:42:39

标签: ios uiscrollview uikit uilabel

我创建了一个UIScrollView。 我设置尺寸,然后我试图添加UILabels。

但是标签都是白色文字(烦人,因为我必须更改每个标签的属性)。

有没有办法让所有标签(从IB拖到视图的新标签)都有默认的黑色文字颜色?

已编辑以匹配评论

我想尽可能多地使用IB。因此,我想将UILabel从Library面板拖到UIView。当我这样做时,UILabel设置为白色(默认)。我希望默认颜色为黑色。我知道我可以以编程方式执行此操作,但除非我确实需要,否则我会尽量避免这种情况。

4 个答案:

答案 0 :(得分:2)

我认为简短的回答是“不,没有一种简单的方法来做你所描述的。”

我能想到的最简单的方法是创建所有UILabel(默认设置为白色文本),然后按住Control键并全部设置它们并同时设置文本颜色 - 所有其他方式都不太方便,或者基本上要求Apple开源Xcode或UIKit,以便我们可以获得他们的内部。

答案 1 :(得分:2)

没有简单的方法可以完全按照自己的意愿行事。但是你可以做的是用你想要的属性创建一个标签,将它存储在绘图板上但不在视图中,然后每次你想要一个新标签而不是拖动一个新标签时复制它。您可以使用选项+拖动轻松复制。

答案 2 :(得分:1)

是的,有办法。您可以循环目标视图的子视图,例如:

UIView * targetView;

[...]

for(id subView in targetView.subViews){
    if([subView isKindOfClass:[UILabel class]]){
        [subView setBackgroundColor:clearColor];
    }
}

答案 3 :(得分:0)

为什么标签必须来自对象库?您可以通过将一个UILable从库中拖动到视图中来获得所需的功能,将所有属性设置为您想要的默认值,然后点击复制(命令+ c)一次。现在您可以根据需要多次粘贴(命令+ v)您的UILabel特殊属性值,IBActions和outlet也将保留在copys中。

如果您计划调整比字体颜色和大小更多的涉及属性,那么我建议采用更自定义的方法,在IB中进行大量拖放工作之前,只需要进行最小化编码。
   在Xcode中对UILable进行子类化,在简单的返回方法中将所有属性设置为一次,然后从“init”和“awakeFromNib”中调用此方法现在返回到IB并执行所有拖放操作,确保标签为你的子类。

然而,我认为如果你这么做很多,特别是如果你将来再做类似的事情,你将节省大量的时间和精力在代码中实现这个“标签工厂” 。它的代码可能比您想象的要少,并且可以在下一个应用程序中重用它。无论如何,那是我的2,祝你好运