ios - addArrangedSubview 没有动画

标签 ios swift uistackview tzstackview

我将 View 添加到 TZStackView(这应该与 UIStackView 基本相同,但对旧版本有回退),如下所示:

stackView.addArrangedSubview(subview)

stackViewsubview 是动态大小的(自动布局)并且可以自行调整大小。但是,这会发生在动画中(我认为由于 addArrangedSubview,如果我将其添加为 subview 并设置约束,则不会发生这种情况)。有没有办法停用动画?

最佳答案

在向 UIStackView 添加排列 View 时禁用动画在 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 上测试。

关于ios - addArrangedSubview 没有动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35439390/

相关文章:

ios - 无法将类型 '__NSDictionaryM' (0x2819d60) 的值转换为 'NSString' (0x2e85588)

ios - 从 Firebase/Storage 下载关于 "Last modified"的图像

ios - 与分页和平移的简单示例混淆。对象C

ios - Monotouch 找不到 AudioFileOpenURL

swift - 所选图像未从 YPImagePicker 显示

ios - UICollectionView:使用 UIStackView 的动态单元格高度

ios - 如何动态地将动态大小的 UIButtons 插入到 UIStackView 中?

ios - 如何在水平堆栈 View 中居中按钮?

ios - 将 JSON String 转换为 NSDictionary 时,并非所有键都有效

swift : How to use enum variable from super class?