我无法理解这一点 - 我知道这一定很简单......我开始感到非常愚蠢。我有两个viewControllers。 MainViewController.h / m和LevelsViewController.h / m
我想在LevelsViewController类中添加一个subView,在IB中构建一个名为levelsView的视图。我从MainViewController.m文件中调用它。 levelsView只有200x200像素,我想将它从superView的帧原点偏移x = 140像素,y = 50像素。
我有这个工作 - 视图显示,但我无法弄清楚如何抵消它。它只显示在0,0 superView帧原点。 (superView显示在它下面,这就是我想要的)。
这是我在MainViewController.m中显示levelsView的方法中调用的代码。(我已经注释了一些我尝试过的东西 - 但是抛出了这个错误:错误:请求成员'框架'in'myLevelsView',属于非类型'LevelsViewController *'
)
- (void) displayLevelsPage {
if (self.theLevelsView == nil) // Does not yet exist - therefore create
{
LevelsViewController * myLevelsView = [[LevelsViewController alloc] initWithNibName:@"levelsView" bundle:[NSBundle mainBundle]];
NSLog(@"NEW theLevelsView instance created!");
CGRect frame2 = CGRectMake(140, 50, 200, 200);
//myLevelsView.frame = frame2;
self.theLevelsView = myLevelsView;
[myLevelsView release];
}
[self.view addSubview: theLevelsView.view];
NSLog(@"Levels View has been activated");
}
任何见解都将受到赞赏。
答案 0 :(得分:2)
myLevelsView没有框架,但它有一个视图,并且有一个框架,因此您的注释掉的行可能是:
myLevelsView.view.frame = frame2;
但是viewcontroller不应该将viewcontroller作为子视图。 viewcontroller用于控制整个视图。一次只能有一个视图控制器控制屏幕。对于MainViewController中的任何子视图,使用UIView(或任何UIView的子类)。