我正在一个装有UIScrollView的屏幕上工作,我需要提供一个调整UIView和UILabel大小的功能。所有视图都将受布局约束添加到UIScrollView中。
现在要更改UILabel的大小,我使用以下代码:
desriptionLabel.numberOfLines = desriptionLabel.numberOfLines == 0 ? 1 : 0
UIView.animate(withDuration: 0.5) {
self.descriptionView.layoutIfNeeded()
}
要更改视图大小,我已经为此视图的高度约束创建了IBOutlet,并且执行以下操作:
if additionalSocialViewHeightConstraint.constant == 60 {
additionalSocialViewHeightConstraint.constant = 240
} else {
additionalSocialViewHeightConstraint.constant = 60
}
UIView.animate(withDuration: 0.5) {
self.additonalSocialView.layoutIfNeeded()
}
现在两个动画都可以工作并调整标签的大小并相应地进行查看,我遇到的问题是这些动画的工作方式。
在两种情况下,动画都会从中心向外扩展视图。因此,对于标签,标签的视图立即增长到期望的大小以适合所有标签文本,然后文本开始从大视图中心的一行沿上下两个方向扩展。
在视图的情况下。再次,该视图首先扩大其周围的空间,将初始视图放置在该空间的中间,然后沿上下方向增长以占据所有空间。
问题:现在,因为我在UIScrollView中,这看起来不太好,我需要更改动画,从中间开始向两个方向扩展,然后从顶部开始并扩展只到底部。另外,我需要缩小到原始大小的动画才能以相同的方式工作,这意味着将视图从下往上缩小。
问题:有人知道我应该如何管理这种动画吗?我做错了什么?任何帮助将不胜感激。
两个视图的约束配置:
UILabel:
UIView: