我有一个tableView
cell
,它由label
和一个textField
组成。
textField
的宽度约束等于 150,其文本设置为 systemBold
30,Adjust to fit
已打开,故事板中的最小尺寸为 10。
当
textField
开始编辑时,我将textField
宽度增加到300以提供更多空间并使用UIView.animate
对其进行动画处理。然后在编辑结束时回到初始状态:
func textFieldDidBeginEditing(_ textField: UITextField) {
UIView.animate(withDuration: 1) { [self] in
textFieldWidth.constant = 300
self.layoutIfNeeded()
}
}
func textFieldDidEndEditing(_ textField: UITextField) {
UIView.animate(withDuration: 1) { [self] in
textFieldWidth.constant = 150
self.layoutIfNeeded()
}
}
我遇到的问题是
textField's
文本字体立即更改为更大的 30 大小而没有任何动画。当 textField
回到其初始 150 宽度时,也会发生同样的情况。
我用 scaleX 和 scaleY 尝试了不同的方法,例如
UIView.transition
、transform
,但没有成功。
我希望字体大小的变化(从小到 30)随着 textField 宽度的变化而变化,从尾随约束到左方向。
如何实现这样的行为?
这是一个测试项目的要点:点击