美文网首页
算法5 -查找两个子视图的共同父视图

算法5 -查找两个子视图的共同父视图

作者: 李永开 | 来源:发表于2019-02-12 20:26 被阅读0次
  • 倒序的思维
        //找到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;
            }
        }

相关文章

  • 算法相关(持续更新)

    查找两个子视图的共同父视图 分析:可以反过来理解,两个子视图有共同父视图,那就说明共同父视图往下的父视图都相同,所...

  • iOS面试之算法大全

    算法 算法内容如下: 字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中...

  • iOS面试之算法模块

    算法 算法内容如下: 字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中...

  • 算法5 -查找两个子视图的共同父视图

    倒序的思维

  • [iOS面试]第11章 算法相关面试问题

    注意:本文主讲算法相关面试问题,包括字符串反转、链表反转、有序数组合并、Hash算法、查找两个子视图的共同父视图、...

  • 算法

    字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组中的中位数

  • 2018 iOS面试题---算法相关

    字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中的中位数 一、字符串反...

  • 算法相关

    字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中的中位数 一、字符串反...

  • 算法相关

    字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中的中位数 一、字符串反...

  • iOS开发 常见算法

    1.查找两个子视图的共同父视图 思路:1.使用两个数组分别记录两个子视图的所有父视图;2.使用倒序分别从最后一个值...

网友评论

      本文标题:算法5 -查找两个子视图的共同父视图

      本文链接:https://www.haomeiwen.com/subject/cexleqtx.html