iOS - 以编程方式添加新视图以使用我的storyboard autolayout viewcontroller

时间:2015-02-27 13:10:49

标签: ios objective-c storyboard autolayout

我正在使用自动布局的故事板,我有一个充满视图,按钮,标签,桌子的viewcontroller ......

我想在点击按钮时在导航栏下方的视图顶部创建一个新视图,然后再次点击它后隐藏它。

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

最好的办法是什么?我试图在storyboard中创建一个高度为0的视图,并在代码中更改高度。有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

嗨,因为您正在使用自动布局我建议您将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;
    }

}