我一直使用IB,但我正在尝试通过代码完成所有工作,而我却没能完成这项任务。
我有一个ViewController来处理用户输入和2个UIViews,它们将同时可见(每个都在一个单独的头/实现UIView文件中):
1 UIView表示更改的自定义标签栏(底部50 px) 1 UIView表示显示的界面(标签栏上方的所有内容)
每个都需要存在于自己的框架中,从ViewController初始化,以便它可以控制它们以及它们显示的内容。
答案 0 :(得分:2)
Bra,UIViewControllers
只有一个UIView作为他们内心的一部分。
即“查看”...即......实际属性view
,如self.view = something
或view.hidden = YES
。
但是,您当然可以添加任意数量的子视图到 该视图 。
这是正常使用视图的方式。几乎每个.view
都有子视图。
UIView *bottomThing = [[UIView alloc] init];
bottomThing.frame = CGRectMake whatever
UIView *otherThing = [[UIView alloc] init];
otherThing.frame = CGRectMake whatever
[view addSubview:bottomThing];
[view addSubview:otherThing];
在示例中,我们在主要的“内置”视图中添加了两个子视图,您将其简称为“视图”。所以我们在我们的“视图”中添加了bottomView,并在我们的“视图”中添加了topView。
您添加的子视图可以是普通的旧UIView,也可以是您自己的UIView特殊子类。
MySpecialView *bottomThing = [[UIView alloc] init];
bottomThing.frame = CGRectMake whatever
ExtraordinaryView *otherThing = [[UIView alloc] init];
otherThing.frame = CGRectMake whatever
[view addSubview:bottomThing];
[view addSubview:otherThing];
(我想FTR可以想象你可以将UIViewController
子类化为其中有多个视图,但这与这个问题毫无意义且无关。)
从您的UIViewController
,您可以以任何方式操纵子视图。
例如[bottomThing doStuff:3.7]
,bottomThing.hidden=YES
等等。
再次在主“视图”中添加更多子视图是绝对正常的 - 这是制作iPhone应用程序的基本方式。只有一个“.view” - 您可以根据需要在其中添加更多视图。希望它有所帮助。
答案 1 :(得分:1)
UIView *myView = [[UIView alloc] init];
[self.view addSubview:myView];
[myView release];