我想創建兩個並排的視圖添加到我的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'?如果是這樣,只需設置其框架而不是分配新視圖。如果不是,他們是什麼(除了空指針,希望)? –