//找到view1的所有父视图
UIView *view1;
NSMutableArray *arr1 = [NSMutableArray array];
UIView *temp = view1;
while (temp.superview) {
[arr1 addObject:temp.superview];
temp = temp.superview;
}
//找到view2的所有父视图
UIView *view2;
NSMutableArray *arr2 = [NSMutableArray array];
temp = view2;
while (temp.superview) {
[arr2 addObject:temp.superview];
temp = temp.superview;
}
//开始查找---> 倒序遍历,因为他们的最顶端的父视图肯定都是UIWindow
int i = 0;
NSMutableArray *resultArr = [NSMutableArray array];//他们的共同父视图可能会有好多个
while (i < MIN(arr1.count, arr2.count)) {
//取最后一个父视图
UIView *super1 = arr1[arr1.count - i -1];
UIView *super2 = arr2[arr2.count - i -1];
if (super1 == super2)
{
[resultArr addObject:super1];
i ++;
}
else//不相等说明已经没有共同的父视图了
{
break;
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。