//找到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;
}
}
网友评论