2013-02-14 43 views
0

我正在做我在iOS中创建应用程序的第一步,因此我可能会问一个愚蠢的问题。 在视图控制器中,我放置了一些按钮和文本字段来执行不同的操作。为了改善组织结构,我希望将多个带有边框的背景分隔开来放置按钮和文本字段。 我试着把一个没有文字和颜色背景的文字标签,并将其移动到它上面,但我不知道为什么图层放置在按钮和文本字段上。然后,我尝试修改文本标签的不透明度,但它完全不令人满意。在视图控制器中放入不同背景

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

1)你可以只使用一个正常的UIView,而不是一个标签,在故事板没有文本(同样的区别只是更正确)

2),其中UI元素在左边栏的顺序重要的是,它基本上是元素的绘制顺序,顶部的绘制顺序是先绘制,因此下面的绘制顺序将被绘制过

0

您可以尝试在Interface Builder中放置多个UIImageView对象并根据需要设置背景从属性检查器,并小心你如何把你的元素在你的UIView。下面的那些是在顶部的那些之后绘制的。

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 elemets共享相同的坐标空间。在这种情况下,您需要关心适当的布局。

这个人是不工作: 的UIView(连接到视图控制器的视图属性的默认视图) --UIButton --UILable --UIButton --UILable --UIView(背景) --UIView(背景) 即使所有坐标等与上述示例中的坐标相同,两个背景视图也会隐藏其他UI元素,只是因为它们被绘制在其他元素之后。最后一个赢得了这个空间。

相关问题