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

10-5 查找两个子视图的共同父试图

作者: Rumbles | 来源:发表于2019-04-14 22:49 被阅读0次

两个子视图的共同父试图 【是一个数组。可能有很多】

A --> 找到所有父试图
B --> 找到所有父试图
倒叙比较不一样的父试图

- (NSArray <UIView *> *)findCommonSuperView:(UIView *)viewOne other:(UIView *)viewOther
{
    NSMutableArray *result = [NSMutableArray array];
    
    // 查找第一个视图的所有父视图
    NSArray *arrayOne = [self findSuperViews:viewOne];
    // 查找第二个视图的所有父视图
    NSArray *arrayOther = [self findSuperViews:viewOther];
    
    int i = 0;
    // 越界限制条件
    while (i < MIN((int)arrayOne.count, (int)arrayOther.count)) {
        // 倒序方式获取各个视图的父视图
        UIView *superOne = [arrayOne objectAtIndex:arrayOne.count - i - 1];
        UIView *superOther = [arrayOther objectAtIndex:arrayOther.count - i - 1];
        
        // 比较如果相等 则为共同父视图
        if (superOne == superOther) {
            [result addObject:superOne];
            i++;
        }
        // 如果不相等,则结束遍历
        else{
            break;
        }
    }
    
    return result;
}

- (NSArray <UIView *> *)findSuperViews:(UIView *)view
{
    // 初始化为第一父视图
    UIView *temp = view.superview;
    // 保存结果的数组
    NSMutableArray *result = [NSMutableArray array];
    while (temp) {
        [result addObject:temp];
        // 顺着superview指针一直向上查找
        temp = temp.superview;
    }
    return result;
}

相关文章

  • 10-5 查找两个子视图的共同父试图

    两个子视图的共同父试图 【是一个数组。可能有很多】

  • 算法相关(持续更新)

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

  • 如何查找两个子视图的共同父视图?

    如何查找两个子视图的共同父视图? 我们创建了一个iOS开发生态交流群,iOS技术职业交流覆盖 2800+技术牛人,...

  • iOS开发 常见算法

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

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

    倒序的思维

  • iOS发散性算法题目1

    1. 题目 题目要求:查找两个子视图的共同父视图 2. 参考答案 iOS masonry中的解决方法 笨方法 力扣...

  • 算法

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

  • iOS面试之算法大全

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

  • iOS面试之算法模块

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

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

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

网友评论

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

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