我想创建两个并排的视图添加到我的viewcontroller的视图。为了避免重复代码,我试图编写一个通用的方法为我创建两个视图。但是,这段代码并不适合我。 view1和view2都是ivars。iOS:创建两个视图的方法
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self makeView:view1];
[self makeView:view2];
}
- (void)makeView:(UIView*)view {
CGRect frame = self.view.bounds;
frame.size.height = frame.size.height/2;
if (view == view2) {
frame.origin = CGPointMake(0, frame.size.height);
}
view = [[UIView alloc] initWithFrame:frame];
[self.view addSubview:view];
}
我认为这个问题可能处理线视图==视图2,某种变量引用错误的。 view == view2总是计算为true,所以view1从不出现。在代码view1和view2的后面部分是零。
什么,具体是出错了?它是否会抛出异常?崩溃?不显示您的意见?配置错误的视图?控制台中的任何东西? – Tim
==是一个指针引用。尝试[view isEqual:view2] – acorc
是从xib还是storyboard加载'view1'和'view2'?如果是这样,只需设置其框架而不是分配新视图。如果不是,他们是什么(除了空指针,希望)? –