Ios UIView高度没有改变
我有一个名为UpdateView的Ios UIView高度没有改变,ios,objective-c,iphone,uiview,Ios,Objective C,Iphone,Uiview,我有一个名为UpdateView的UIView,它是主视图的子视图。根据某些条件,视图高度会发生变化。但视图高度仅更改一次。下次我更改它时,它会显示上一个高度本身 - (void)viewWillAppear:(BOOL)animated { if (userLoggedIn) [self resetSubviews]; else [self setupSubviews]; } -(
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.updateView.frame.height。请使用自动布局。为视图定义高度约束,为该约束创建特性并更改值
self.heightConstraint.constant = XXXX;
尝试使用视图的
setNeedsLayout
和布局所需的
方法相结合
更新视图高度时调用这些方法。在情节提要中使用约束时,如何不使用自动布局?仅在自动布局中支持o_o约束!我的意思是自动调整大小。您不能直接更改高度和宽度。你必须用更新的高度来改变视角,我感兴趣的是你如何在不改变视角的情况下改变高度。此代码不应编译。我已编辑此代码。我直接使用高度是因为我使用的是第三方库,该库根据frame.size.height在内部设置高度。