Ios 如何添加具有位置的子视图?

Ios 如何添加具有位置的子视图?,ios,objective-c,uiview,Ios,Objective C,Uiview,我有这样的想法: myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; [mainCanvas addSubview: myViewController.view]; self.view = mainCanvas; myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

我有这样的想法:

myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
[mainCanvas addSubview: myViewController.view];
self.view = mainCanvas;
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;

它将被添加到位置(0,0),但我想添加到位置(0,100)或其他位置。如何执行此操作?

在子视图上设置frame属性。

类似以下内容:

myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
[mainCanvas addSubview: myViewController.view];
self.view = mainCanvas;
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中的何处,都将使子视图全屏显示,仅当您位于视图的最顶端时才完全显示。

@applefreak框架是视图在其superview坐标系中的位置。你所要求的没有意义。这是最干净的方法,甚至不需要启用掩码转换。难以置信的是,在我的例子中,
(0,0,宽度,高度)
必须明确声明,因为这不是默认行为。疯子