addArrangedSubview 没有动画
addArrangedSubview without animations
我将视图添加到 TZStackView
(应该与 UIStackView
基本相同,但对旧版本有回退),如下所示:
stackView.addArrangedSubview(subview)
stackView
和 subview
具有动态大小(自动布局)并可自行调整大小。但是,动画会发生这种情况(我认为由于 addArrangedSubview
,如果我将其添加为子视图并设置约束,则不会发生这种情况)。有没有办法停用动画?
UIView performWithoutAnimation:将在没有动画的情况下执行其块参数:
UIView.performWithoutAnimation {
stackView.addArrangedSubview(subview)
}
在向 UIStackView 添加排列视图时禁用动画在 iOS 9 中无法正常工作。
解决办法是在布局之外单独进行加法:
// Add all views first.
for view in views {
stackView.addArrangedSubview(view)
}
// Now force the layout in one hit, sans animation.
UIView.performWithoutAnimation {
stackView.setNeedsLayout()
stackView.layoutIfNeeded()
}
在 iOS 9.3、Xcode 8.3.2 上测试。
尚未在 iOS 10 或 11 上测试。
我将视图添加到 TZStackView
(应该与 UIStackView
基本相同,但对旧版本有回退),如下所示:
stackView.addArrangedSubview(subview)
stackView
和 subview
具有动态大小(自动布局)并可自行调整大小。但是,动画会发生这种情况(我认为由于 addArrangedSubview
,如果我将其添加为子视图并设置约束,则不会发生这种情况)。有没有办法停用动画?
UIView performWithoutAnimation:将在没有动画的情况下执行其块参数:
UIView.performWithoutAnimation {
stackView.addArrangedSubview(subview)
}
在向 UIStackView 添加排列视图时禁用动画在 iOS 9 中无法正常工作。
解决办法是在布局之外单独进行加法:
// Add all views first.
for view in views {
stackView.addArrangedSubview(view)
}
// Now force the layout in one hit, sans animation.
UIView.performWithoutAnimation {
stackView.setNeedsLayout()
stackView.layoutIfNeeded()
}
在 iOS 9.3、Xcode 8.3.2 上测试。 尚未在 iOS 10 或 11 上测试。