繁体   English   中英

UIView 高度没有改变

[英]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。

尝试结合视图的setNeedsLayoutlayoutIfNeeded方法来更改视图。

当您更新视图的高度时调用这些方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM