ios - Stackview 交换或更改 View 顺序

标签 ios uiview autolayout uistackview stackview

包含文本字段数组的堆栈 View 嵌入在 ScrollView 中。我想更改某些操作中文本字段的顺序。删除和添加文本字段的方式会导致 View 失真。我还通过从 ScrollView 中删除进行了测试。正常的堆栈 View 也没有正确显示交换。我正在使用索引来更改:


stackView.removeArrangedSubview(localityTF) stackView.insertArrangedSubview(localityTF, at: 2)

最佳答案

这是一种奇怪的行为,但自动布局系统存在问题,在您可以添加 localityTF 之前应该更新它。也不要忘记 removeArrangedSubview 不会从 subview 数组中删除 View :

[self.stackView removeArrangedSubview:_label1];
[self.stackView setNeedsLayout];
[self.stackView layoutIfNeeded];

[self.stackView insertArrangedSubview:_label1 atIndex:2];   
[self.stackView setNeedsLayout];

关于ios - Stackview 交换或更改 View 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41326529/

相关文章:

iphone - 操作 AudioBuffer 的 mData 中的数据

ios - 迁移到 Swift 3 时可以使用旧框架吗?

ios - 如何从一个 UITableViewController 到另一个 UIViewController 进行回调

iOS - 如何使用 AutoLayout 垂直排列多个组件?

ios - 如何在 UIWebview 中包含自定义字体?

ios - View Controller 的过渡 - 从左到右

ios - 自定义 UIView 警告

ios - 一旦异步调用在 swift 中出现,就停止它

ios - 为什么我在 iPhone X 模拟器的底部看到白色区域?

ios - 自动布局中按钮之间的等宽和等间距