如何根据视图高度值的变化上下移动UIScrollView?

时间:2017-12-26 08:20:56

标签: ios uiscrollview

如果视图的大小从48更改为72,从72更改为48,那么如何相应地上下移动滚动视图?

情况A: 视图的高度为48。

[    ] a view
----- keyboard upper edge

现在视图的大小从48变为72.其中一部分(24点)隐藏在键盘后面。

[    ] a view
----- keyboard upper edge
[////] a view's part that got hidden.

Q1:如何向上移动scrollView以便键盘不会遮挡放大的视图?

情况B: 视图的高度为72。

[     ] a view
[     ]
------- keyboard upper edge

视图再次改变其大小。这个时间从72到48。

[     ] a view
unwanted empty space
------  keyboard upper edge

Q2:如何将滚动视图向下移动到其位置,因此没有不需要的空白区域?

1 个答案:

答案 0 :(得分:0)

从界面构建器拖动为 IBOulet 更改窗体48到72的视图的高度约束命名 viewHeightCon 还拖动 scrollview的底部约束将其命名为 scrollViewBottomCon

   func changeTo48OR72 (value: Int)
   {

       // adjust view height here
       self.viewHeightCon.constant = value

         if(value == 72)
        {
           // make scrollview up sum of keyboard and 24 [72-48]
           self.scrollViewBottomCon.constant = -1 * (keyboardHeight + 24)
        }
        else if(value == 48)
        {
           // restore scrollview directly up keyboard
          self.scrollViewBottomCon.constant = -1* keyboardHeight
        } 


       // animate height change

       UIView.animate(withDuration: 0.2, animations: {

        self.view.layoutIfNeeded()

       })


   }