UIViewController的视图可以包含另一个UIView对象吗?

时间:2011-10-18 04:58:21

标签: iphone objective-c ios

MyViewController.xib窗口中有4个项目:

  
      
  1. 文件的所有者(MyViewController类型)
  2.   
  3. 第一响应者(类型为UIResponder)
  4.   
  5. 查看(类型为UIScrollView)
  6.   
  7. FloatingView (UIView类型)
  8.   

ViewFloatingView都包含一些控件(例如标签和文本字段......),并使用IB设计。 FloatingView不得占据全屏;当用户点击屏幕时,我的应用功能需要FloatingView移动到新点击的位置。

实例变量UIView *myFloatingView;被定义为属性/ IBOutlet并被合成,它连接到IB上的FloatingView视图。

viewDidLoad方法上,我将myFloatingView添加到我的视图控制器视图中作为其子视图:

-(void)viewDidLoad {
    [super viewDidLoad];

    CGRect myFrame = CGRectMake(50, 50, 150, 150); //initial location
    self.myFloatingView.frame = myFrame;
    [self.view addSubview:self.myFloatingView];
}

Apple文档说每个UIViews应该有一个相应的视图控制器。但是,我在这里只使用一个视图控制器。我将浮动的UIView对象视为常规控件,或者称为面板。我将来可能会允许用户隐藏/取消隐藏此浮动视图。

这是一个很好的做法,还是有更好的方式(任何例子)去做我想做的事情?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你做得很好。实际上,viewController通常可以控制整个层次结构。另外,你说你的floatingView与你的根视图在同一个笔尖?如果是这样,您可以在那里将其作为子视图,而不是在viewdidLoad中添加为子视图。