iOS - 以编程方式添加新视图以使用我的故事板自动布局 viewcontroller

iOS - Programatically add a new view to work with my storyboard autolayout viewcontroller

我正在使用带有自动版式的故事板,其中 viewcontroller 充满了视图、按钮、标签、table...

我想在该视图的顶部、导航栏下方、单击按钮时创建一个新视图,并在再次单击它时将其隐藏。

我想以编程方式执行此操作。这意味着该视图将出现在顶部,其余视图将不得不向下移动该新视图的高度。当此视图消失时,视图将再次向上移动。

执行此操作的最佳方法是什么?我试图在情节提要中创建一个 height = 0 的视图并更改代码中的高度。有更好的方法吗?

所有需要下移的视图应该放在一个UIView中。并且您的代码应该有一个用于此视图的 IBOutlet。

当您以编程方式创建新视图时,您会知道它的高度。

现在您可以调用第一个视图的 setFrame 并将其向下移动。

您好,由于您使用的是自动布局,我建议采用 IBOutlet 作为要放在导航栏下方的视图的高度约束,并在代码中进行更改

这是一个示例

//IBOutlet for height constraint of view

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *conHeightTopView;

- (void)changeHeight:(BOOL)change{
    if (change) {

        _conHeightTopView.constant = 50;//Height of view when shown

    }else{
        _conHeightTopView.constant = 0;
    }

}