在视图控制器中放置不同的背景

时间:2013-02-14 10:40:18

标签: objective-c uiviewcontroller ios6 background xcode4.5

我正在创建在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;

可以帮助我找到更好的方法来改善我的代码吗?

3 个答案:

答案 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元素之后绘制的。而最后一个赢得了空间。