2014-07-21 128 views
2

加載的UIView的高度我有一個從筆尖加載像這樣一個觀點:無法更改從筆尖

SLSCaseCard* caseCard = [[[NSBundle mainBundle] loadNibNamed:@"SLSCaseCard" owner:self options:nil] objectAtIndex:0]; 

我設置它的框架是這樣的:

cardFrame = CGRectMake(25,25, caseCard.frame.size.width, 44); 
[caseCard setFrame:cardFrame]; 
[self.view addSubview:caseCard]; 

xy正在改變,但高度始終保持不變。該視圖在筆尖中的大小爲224,並且在運行時保持在該高度。

+3

可能是你正在使用自動佈局,你用xib項目。 –

+0

對不起,我忘了在原始文章中提到,我嘗試在我的筆尖和主要故事板上打開和關閉AutoLayout,但它沒有幫助。 – Carpetfizz

+0

如果該視圖來自你的xib的UIView已經有什麼需要再次添加? –

回答

2

故事板(或XIB)爲您生成代碼。此代碼在佈置子視圖時執行。因此,如果您想更改XIB中定義的視圖的框架,則應在viewDidLayoutSubviewslayoutSubviews之後執行此操作。

因此,即使在設置視圖的高度後,您的更改將被XIB生成的代碼覆蓋,該代碼在您的案例224中將高度替換爲XIB中定義的高度。與寬度相同。

+0

我在for循環中動態地加載視圖,所以我試圖在視圖放置時更改高度。 – Carpetfizz

+1

如果您想要動態視圖,請不要使用XIB或故事板。所有動態視圖都應該以編程方式創建。即使你可以使用XIB來獲得你的功能,你最終會發現自己陷入了一系列帶有限制和東西的錯誤(除非你對它們非常滿意)。所以我建議你以編程方式創建視圖。 –