【问题标题】:UIViewController's view can contain another UIView object?UIViewController 的视图可以包含另一个 UIView 对象吗?
【发布时间】:2011-10-18 04:58:21
【问题描述】:

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

  1. 文件的所有者(MyViewController 类型)
  2. First Responder(UIResponder 类型)
  3. 视图(UIScrollView 类型)
  4. FloatingView(UIView 类型)

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

一个实例变量UIView *myFloatingView;被定义为一个property/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 文档说每个 UIView 都应该有一个相应的视图控制器。但是,我在这里只使用一个视图控制器。我将浮动 UIView 对象视为常规控件,或者说是面板。我将来可能会允许用户隐藏/取消隐藏这个浮动视图。

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

非常感谢您的帮助。

【问题讨论】:

  • 这样就好了。我认为我们不需要为我们创建的每个视图使用不同的视图控制器。这也将非常困难。

标签: iphone objective-c ios


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多