如何根据视图高度值的变化上下移动UIScrollView?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据视图高度值的变化上下移动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:如何将滚动视图向下移动到其位置,因此没有不需要的空白区域?
答案
从界面构建器拖动作为更改窗体48到72的视图的IBOulet高度约束命名它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()
})
}
以上是关于如何根据视图高度值的变化上下移动UIScrollView?的主要内容,如果未能解决你的问题,请参考以下文章
如何获得根据标签内容动态变化的 UIView 的高度 - Swift
iOS-基于键盘显示的UITextField高度和按钮移动的变化