【问题标题】:iOS - Programatically add a new view to work with my storyboard autolayout viewcontrolleriOS - 以编程方式添加一个新视图以使用我的故事板自动布局视图控制器
【发布时间】:2015-02-27 13:10:48
【问题描述】:

我正在使用带有自动布局的 Storyboard,其中我有一个视图控制器,其中包含视图、按钮、标签、表格...

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

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

最好的方法是什么?我试图在故事板中创建一个高度 = 0 的视图并更改代码中的高度。有没有更好的方法?

【问题讨论】:

    标签: ios objective-c storyboard autolayout


    【解决方案1】:

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

    【讨论】:

    • 我就是这么做的,是的。谢谢!
    • 但只有一行: - (void)changeHeight:(BOOL)change { _conHeightTopView.constant = change ? 50:0; } ;)
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-19
      • 2013-04-30
      • 2017-12-15
      • 2016-04-14
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多