zoukankan      html  css  js  c++  java
  • IBOutletCollection 索引获取顺序问题

    在sb中绑定了一个IBOutletCollection后,根据索引获取元素发现和自己拖线时的顺序不同,有时又会根据顺序,不知道是xcode的bug还是本身就是无序的。

    在使用的时候直接排序:

    - (void)viewDidLoad
    {
     [super viewDidLoad];
     // Order the labels based on their y position
     self.labelsArray = [self.labelsArray sortedArrayUsingComparator:^NSComparisonResult(id label1, id label2) {
      if ([label1 frame].origin.y < [label2 frame].origin.y) return NSOrderedAscending;
      else if ([label1 frame].origin.y > [label2 frame].origin.y) return NSOrderedDescending;
      else return NSOrderedSame;
     }];
    }
    

     把数组进行排序:

    @interface NSArray (sortBy)
    - (NSArray*) sortByObjectTag;
    - (NSArray*) sortByUIViewOriginX;
    - (NSArray*) sortByUIViewOriginY;
    @end
    @implementation NSArray (sortBy)
    
    - (NSArray*) sortByObjectTag
    {
     return [self sortedArrayUsingComparator:^NSComparisonResult(id objA, id objB){
      return(
       ([objA tag] < [objB tag]) ? NSOrderedAscending :
       ([objA tag] > [objB tag]) ? NSOrderedDescending :
       NSOrderedSame);
     }];
    }
    
    - (NSArray*) sortByUIViewOriginX
    {
     return [self sortedArrayUsingComparator:^NSComparisonResult(id objA, id objB){
      return(
       ([objA frame].origin.x < [objB frame].origin.x) ? NSOrderedAscending :
       ([objA frame].origin.x > [objB frame].origin.x) ? NSOrderedDescending :
       NSOrderedSame);
     }];
    }
    
    - (NSArray*) sortByUIViewOriginY
    {
     return [self sortedArrayUsingComparator:^NSComparisonResult(id objA, id objB){
      return(
       ([objA frame].origin.y < [objB frame].origin.y) ? NSOrderedAscending :
       ([objA frame].origin.y > [objB frame].origin.y) ? NSOrderedDescending :
       NSOrderedSame);
     }];
    }
    
    @end

    然后包含头文件,你选择了它,该代码可以是:
    - (void)viewDidLoad
    {
     [super viewDidLoad];
     // Order the labels based on their y position
     self.labelsArray = [self.labelsArray sortByUIViewOriginY];
    }
  • 相关阅读:
    1.9
    在VS中添加lib库的三种方法
    第一章之位向量和位运算
    【转载】window下配置pthread的方法及出现问题的解决方法
    opencv环境配置问题
    box-shadow用法简介
    创建资源文件
    nhibernate Mybatisnet
    js中(function(){…})()立即执行函数写法理解
    最近项目中用到的js
  • 原文地址:https://www.cnblogs.com/lacklock/p/3763517.html
Copyright © 2011-2022 走看看