我有类似这样的东西:
myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
[mainCanvas addSubview: myViewController.view];
self.view = mainCanvas;
这将会被添加到位置 (0, 0),但是我想要将它添加到 (0, 100) 或其他位置。我该如何操作?
我有类似这样的东西:
myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
[mainCanvas addSubview: myViewController.view];
self.view = mainCanvas;
这将会被添加到位置 (0, 0),但是我想要将它添加到 (0, 100) 或其他位置。我该如何操作?
像这样:
myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
myViewController.view.frame = CGRectMake(0, 100, myViewController.view.frame.size.width, myViewController.view.frame.size.height);
[mainCanvas addSubview: myViewController.view];
self.view = mainCanvas;
除了设置frame
属性外,您还可以设置视图的center
属性。
设置子视图的帧属性。
这是我发现的最好的添加子视图的方法,比如加载屏幕或者想要在UIView
、UIScrollView
或者UITableView
中显示的内容。
myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
myViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self.view addSubview:myViewController.view];
self.view.bounds = myViewController.view.bounds;
通过将子视图添加到您当前在self.view中的位置,而不是将其定位在左上角并仅在视图顶部时完全显示,可以使子视图无论您在self.view中的位置如何都以全屏方式显示。
(0, 0, width, height)
必须显式声明,因为它不是默认行为。太疯狂了! - Angad