UIScroll 及其嵌套元素
Posted
技术标签:
【中文标题】UIScroll 及其嵌套元素【英文标题】:UIScroll and its nested elements 【发布时间】:2011-08-30 17:42:38 【问题描述】:我创建了一个 UIScrollView。 我设置了尺寸,然后尝试添加 UILabel。
但是标签都是白色文本(很烦人,因为我必须更改每个标签的属性)。
有没有办法让所有标签(从 IB 拖到视图的新标签)的默认文本颜色为黑色?
已编辑以匹配 cmets
我想尽可能多地使用 IB。因此,我想将 UILabel 从库调色板拖到 UIView。当我这样做时, UILabel 设置为白色(默认)。我希望默认颜色为黑色。我知道我可以通过编程方式做到这一点,但我会尽量避免这种情况,除非我真的需要这样做。
【问题讨论】:
【参考方案1】:没有简单的方法可以完全按照您的意愿行事。但是您可以做的是创建一个具有所需属性的标签,将其存储在绘图板上的某个位置而不是视图中,然后在每次需要新标签时复制它,而不是拖动新标签。您可以使用选项+拖动轻松复制。
【讨论】:
【参考方案2】:我认为简短的回答是“不,没有简单的方法来做你所描述的事情。”
我能想到的最简单的方法是创建所有 UILabel(默认设置为白色文本),然后按住 control 并单击它们并一次性设置它们的文本颜色——所有其他方法都不太方便,或者本质上需要 Apple 开源 Xcode 或 UIKit,以便我们了解它们的内部结构。
【讨论】:
【参考方案3】:是的,有办法。您可以循环目标视图的子视图,例如:
UIView * targetView;
[...]
for(id subView in targetView.subViews)
if([subView isKindOfClass:[UILabel class]])
[subView setBackgroundColor:clearColor];
【讨论】:
是否要更改首选项,以便拖动的所有元素都有黑色文本? 你的意思是文字颜色?当然只是设置 setTextColor 而不是 setBackgroundColor。也许我误解了你所说的拖拽是什么意思?您是指 UILabel 仅指您从 Interface Builder 中“拖动”的内容吗? 我想尽可能多地使用 IB。因此,我想将 UILabel 从库调色板拖到 UIView。当我这样做时, UILabel 设置为白色(默认)。我希望默认颜色为黑色。我知道我可以以编程方式执行此操作,但除非我真的需要,否则我会尽量避免这种情况。【参考方案4】:为什么标签必须来自对象库?您可以通过仅将一个 UILable 从库中拖动到您的视图来获得所需的功能,将所有属性设置为您想要的默认值并点击一次 copy(command+c)。现在,您可以根据需要多次粘贴(command+v)带有特殊属性值的 UILabel,IBActions 和 outlets 也将保留在副本中。
如果您打算调整比字体颜色和大小更多的相关属性,那么我会建议一种更自定义的方法,在您在 IB 中进行批量拖放工作之前只需要最少的编码。 在 Xcode 中子类化一个 UILable,在一个简单的返回方法中只设置一次所有属性,然后从“init”和“awakeFromNib”调用此方法现在回到 IB 并执行所有拖放操作,确保标签是你的子类。
但是,我认为如果你经常这样做,特别是如果你将来会再次做类似的事情,你会节省大量的时间和精力来在代码中实现这个“标签工厂” .它的代码可能比您想象的要少,而且更重要的是您可以在下一个应用程序中重用它。反正这是我的 2 美分,祝你好运
【讨论】:
以上是关于UIScroll 及其嵌套元素的主要内容,如果未能解决你的问题,请参考以下文章