Мор*_*орт 5 ios swift uistackview
如果我尝试动画隐藏stackview的所有子视图,我可以看到它们向左上角移动.在展示时,它们的动画从左上角到适当的空间.如果我只隐藏已排列视图的子集,则会按预期动画.
我目前的解决方法是在堆栈中保留一个不可见的子视图,但这是非常不可思议的.
我在躲藏
UIView.animate(withDuration: 0.5) {
self.someStack.arrangedSubviews.forEach { $0.isHidden = !$0.isHidden
}
Run Code Online (Sandbox Code Playgroud)
我遇到了一个非常相似的问题,经过几个小时的来回,我发现调用self.view.layoutIfNeeded()解决了这个问题。
我的层次结构:
- UIView
- UIStackView
- UIStackView(1)
- UIButton
- UIButton
- UIStackView(2)
- UITextField
- UIButton
- UIActivityIndicatorView
当键盘根据 . 中的调用出现时,根UIView 动画UITextField.becomeFirstResponder()从底部开始(2)UIStackView。默认情况下,每个子视图(2)UIStackView都是隐藏的。根据UISegmentedControl更改,应用程序调用UITextField.becomeFirstResponder()并隐藏(1)UIStackView和显示(2)UIStackView. 如果我不调用self.view.layoutIfNeeded()后stackView.subviews.forEach { $0.isHidden = false }显示子视图,(2)UIStackView我会看到它们从左上角开始动画设备的
我不知道这是否对您有帮助,但这可能是调查的起点。
| 归档时间: |
|
| 查看次数: |
1095 次 |
| 最近记录: |