[英]UIView height is not changing
我有一个名为 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 条件,则整个时间视图高度都保持与该条件中设置的相同。
我没有使用自动布局。 但我使用了自动调整大小。 请有人告诉我我做错了什么吗?
请使用自动布局。 为视图定义一个高度约束,为此约束创建一个属性并更改值。
self.heightConstraint.constant = XXXX;
尝试更改 self.updatesView.frame.height。
尝试结合视图的setNeedsLayout
和layoutIfNeeded
方法来更改视图。
当您更新视图的高度时调用这些方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.