我有一個UIView
調用updatesView這是主視圖的子視圖。基於某些條件,視圖高度會發生變化。但視圖高度只更改一次。下一次當我改變它時,它會顯示之前的高度。UIView高度不變
- (void)viewWillAppear:(BOOL)animated
{
if (userLoggedIn)
[self resetSubviews];
else
[self setupSubviews];
}
-(void)resetSubviews
{
CGRect updateFrame = self.updatesView.frame;
updateFrame.size.height =self.notificationContainerView.frame.size.height - self.headerView.frame.size.height;
self.updatesView.frame = updateFrame;
}
- (void)setupSubviews
{
CGRect updateFrame = self.updatesView.frame;
updateFrame.size.height = self.notificationContainerView.frame.size.height - self.tabView.frame.size.height - self.buttonsView.frame.size.height - kHomeTabbarHeight - 5;
self.updatesView.frame = updateFrame;
}
假設最初運行應用程序userIsLoggedIn時,它執行第一個條件。現在,如果我註銷(在另一個UIViewController
)並返回,則會執行else條件,但顯示高度時不會更改。
同樣,如果執行else條件,最初在運行應用程序時,視圖高度始終保持與在該條件下設置的相同。
我沒有使用自動佈局。但我已經使用了自動調整。請有人能告訴我我做錯了什麼嗎?
如何在故事板中使用約束時不使用自動佈局? o_O 僅在自動佈局中支持約束! – arturdev
我的意思是自動調整。 – JMS
您無法直接更改高度寬度。你必須改變更新高度的視野 –