Ios 以编程方式更改情节提要视图的高度
背景: 我在故事板中有一个正常的Ios 以编程方式更改情节提要视图的高度,ios,uiview,uistoryboard,Ios,Uiview,Uistoryboard,背景: 我在故事板中有一个正常的ui视图(称为statusView),它的高度为30,四个约束固定在前导、尾随、超级视图的顶部空间和其下的视图的底部空间 问题: 我的目标是改变statusView的高度,包括在用户执行动作时设置帧更改的动画。因此,statusView可以短到0,也可以高到100 我的期望是,如果statusView被约束到superview及其下面的最近邻居,当我改变其高度时,它应该自动“推”下面的视图 为了测试,我在视图中调用以下命令: self.statusView.fra
ui视图
(称为statusView
),它的高度为30
,四个约束固定在前导、尾随、超级视图的顶部空间和其下的视图的底部空间
问题:
我的目标是改变statusView
的高度,包括在用户执行动作时设置帧更改的动画。因此,statusView
可以短到0
,也可以高到100
我的期望是,如果statusView
被约束到superview及其下面的最近邻居,当我改变其高度时,它应该自动“推”下面的视图
为了测试,我在视图中调用以下命令:
self.statusView.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 100.0)
self.statusView.setNeedsDisplay()
问题:尽管我将其设置为0
,但是statusView的高度仍为30
编辑:发布情节提要
设置
这是statusView
的设置:
如果您正在使用autolayout并希望为层次结构中的视图设置显式高度,则应使用autolayout进行设置。我假设在interface builder中设置了高度约束
@IBOutlet weak var statusViewHeightConstraint: NSLayoutConstraint!
为约束创建一个IBOutlet
,并在interface builder中将其链接起来
@IBOutlet weak var statusViewHeightConstraint: NSLayoutConstraint!
然后,假设这只是一个大小约束,高度为常量,只需在代码中更改它:
statusViewHeightConstraint.constant = 100
修改约束后,可以通过在动画块中包装布局调用来设置此更改的动画。大概是这样的:
UIView.animateKeyframes(withDuration: 0.2, delay: 0.0, options: [.beginFromCurrentState, .calculationModeCubic], animations: {
self.view.layoutIfNeeded()
}, completion: nil)
如果使用autolayout并希望为层次中的视图设置显式高度,则应使用autolayout进行设置。我假设在interface builder中设置了高度约束
@IBOutlet weak var statusViewHeightConstraint: NSLayoutConstraint!
为约束创建一个IBOutlet
,并在interface builder中将其链接起来
@IBOutlet weak var statusViewHeightConstraint: NSLayoutConstraint!
然后,假设这只是一个大小约束,高度为常量,只需在代码中更改它:
statusViewHeightConstraint.constant = 100
修改约束后,可以通过在动画块中包装布局调用来设置此更改的动画。大概是这样的:
UIView.animateKeyframes(withDuration: 0.2, delay: 0.0, options: [.beginFromCurrentState, .calculationModeCubic], animations: {
self.view.layoutIfNeeded()
}, completion: nil)
这是一个好主意-更改高度约束。我能通过约束设置高度变化的动画吗?太棒了。非常感谢!这是一个好主意-更改高度约束。我能通过约束设置高度变化的动画吗?太棒了。非常感谢!