Ios UIView高度没有改变

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]; } -(

我有一个名为UpdateView的
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在内部设置高度。