我有一个单元格,其文本视图的大小为n。当我按下按钮时,我停用该高度约束,并且由于为动态单元大小设置了tableview,单元格会调整大小。唯一令我烦恼的是,我似乎无法让它在大小上变得有活力。它相当“二元”,收缩或扩大。我已经尝试在indexpath重新加载行,beginupdates-endupdates,但我已经碰壁了。我很感激任何建议。感谢
答案 0 :(得分:0)
如果要为约束更改设置动画,通常可以使用约束更改后跟a来执行此操作
UIView.animate(withDuration:1){self.view.layoutIfNeeded() }
如果您尝试设置实际约束更改的动画,则无效。
答案 1 :(得分:0)
您可以将layoutIfNeeded()
置于常规animate(withDuration...)
方法中,但创建核心动画事务可让您使用自定义时间(缓动)曲线。
CATransaction.begin()
someViewConstraintDefault.isActive = false
someViewConstraintNew.isActive = true
CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(controlPoints: 0.25, 1, 0.25, 1))
UIView.animate(withDuration: 0.5, animations: { [weak self] in
self?.view.layoutIfNeeded()
})
CATransaction.commit()
这是构建自定义时序曲线的绝佳工具:interesting post