我正在创建在iOS中创建应用程序的第一步,所以也许我在问一个愚蠢的问题。 在View Controller中,我放了一些按钮和文本字段来进行不同的操作。为了改善组织,我想放置几个带边框的背景来界定按钮和文本字段所在的区域。 我尝试放置没有文字和颜色背景的文本标签,并将我的对象移到它上面,但我不知道为什么将图层放在按钮和文本字段上。然后,我尝试修改文本标签的不透明度,但它完全不能令人满意。
label1.layer.cornerRadius = 5.0;
label1.layer.masksToBounds = YES;
label1.layer.borderColor = [UIColor lightGrayColor].CGColor;
label1.layer.borderWidth = 1.0;
label1.layer.opacity = 0.1;
label1.layer.backgroundColor = [UIColor whiteColor].CGColor;
可以帮助我找到更好的方法来改善我的代码吗?
答案 0 :(得分:0)
1)你可以使用普通的UIView而不是没有文字的标签(相同的差异更正确)
<2>)在故事板中,UI元素在左侧栏上的顺序很重要,它基本上是元素的绘制顺序,顶部的元素是先绘制的,因此下面的东西将被绘制在答案 1 :(得分:0)
您可以尝试在Interface Builder中放置多个UIImageView对象,并根据需要从Attributes Inspector设置背景,并注意如何将元素放入UIView中。下面的内容是在顶部的那些之后绘制的。
答案 2 :(得分:0)
如果我理解你的话,......
熟悉子视图层次结构背后的逻辑和兄弟姐妹的绘制顺序。 在界面构建器/故事板中,您可以按如下方式对齐视图:
UIView (the default view that is connected to the view controller's view property)
\--UIView (This is a background to group UI Items as buttons or Lables
\-- UILabel
\-- UIButton
\--UIView (the next background)
\-- UILabel
\-- UIButton
当谈到coorindates时,你会注意到每个视图的坐标都是相对于它的子视图。因此UILabel和UIButton可能具有相同的坐标,但每个坐标都位于其子视图中。
另一种选择是:
UIView (the default view that is connected to the view controller's view property)
\--UIView (Background)
\--UIButton
\--UILable
\--UIView (Background)
\--UIButton
\--UILable
甚至
UIView (the default view that is connected to the view controller's view property)
\--UIView (Background)
\--UIView (Background)
\--UIButton
\--UILable
\--UIButton
\--UILable
在这种情况下,所有UI元素共享相同的坐标空间。在这种情况下,您需要关心正确的布局。
这个是行不通的: UIView(连接到视图控制器的视图属性的默认视图) --UIButton --UILable --UIButton --UILable --UIView(背景) --UIView(背景) 即使所有坐标等都与上述示例的坐标相同,两个背景视图也会隐藏其他UI元素,因为它们是在其他UI元素之后绘制的。而最后一个赢得了空间。