如何获取父视图中子UIView的索引?

10

我想使用 exchangeSubviewAtIndex:withSubviewAtIndex: 方法。

但是我怎么才能获得这些视图的索引呢?我已经有它们的指针了,因此我认为可能会有一个类似的方法。

[parentView indexOfSubview:subview];

但是我在Xcode文档库中找不到那种东西。

请帮帮我!谢谢您提前的帮助。


请查看此链接:https://dev59.com/tHE95IYBdhLWcg3wXcrd - Nitin Gohel
4个回答

27

获取方法如下:

[parentView.subviews indexOfObject:subview];

在 Swift 中:

parentView.subviews.firstIndex(of: subview)

9

你可以像在 NSArray 中一样查找对象的索引,因为 view.subviews 返回一个数组

NSUInteger index1=[parentView.subviews indexOfSubview:subview1];
NSUInteger index2=[parentView.subviews indexOfSubview:subview2];

[parentView exchangeSubviewAtIndex:index1 withSubviewAtIndex:index2];

您可以通过此链接了解更多信息:如何获取UIView层次结构索引?(即与其他子视图之间的深度)


你的代码需要进行一些编辑,@Rajneesh...NSUInteger index1 = [parentView.subviews indexOfObject:subview1]; NSUInteger index2 = [parentView.subviews indexOfObject:subview2];[parentView exchangeSubviewAtIndex:index1 withSubviewAtIndex:index2];请注意,parentView 上的 indexOfSubview 已更改为 indexOfObject,exchangeObjectAtIndex 已更改为 exchangeSubviewAtIndex。 - amergin

3
[View.subviews indexOfObject:SubView];

2
你可以使用这个方法获取数组的索引。
[view.subViews indexOfObject:yourSubView]; 

尝试捕获该索引。

NSInteger index=[view.subViews indexOfObject:yourSubView]; 

试试这段代码,可能对你有帮助...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接