ios - 从 UIStackView 获取 View 的索引
问题描述
我添加了 2 个stackview
不同大小的视图。现在,当我单击任何视图的加号按钮时,我只想在其下方添加一个视图。
我通过以下方式获得视图:
let index = superView.subviews.index(of: view)
然后我在做:
superView.insertArrangedSubview(newView, index + 1)
但实际上它是在不同的位置添加新的视图。
所以如果我尝试获取索引,.subview.index
那么它总是返回最后一个索引
解决方案
和数组不必相同(因为堆栈视图可以有一个未“排列”的子视图)arrangedSubviews
。subviews
即使它们具有相同的元素,它们也不必处于相同的顺序。
所以:
if let index = stackView.arrangedSubviews.firstIndex(of: view) {
stackView.insertArrangedSubview(newView, at: index + 1)
}
推荐阅读
- python - tf.data.Dataset 的“图层顺序_1 的输入 0 与图层不兼容”
- ios - 在 Xcode 的信息中找不到本地化
- javascript - 如何使字符串出现在本地存储中的某个位置?
- c++ - 将 C/C++.bt(二进制模板)结构等包装函数转换为 Java 8
- flutter - 在 NestedScrollView 中颤动 PageView 正文,SliverAppBar 不隐藏应用栏
- cpanel - 在 netlify 上托管并使用 cpanel 作为自定义邮件服务器
- ajax - Laravel 基础 url 显示非 SSL url()
- git - Git 获取标签但缺少最新版本
- r - 在先前重塑的索引列之后重塑多组变量
- c++ - c++中@符号的作用是什么?