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];
    }
  • 相关阅读:
    jUnit4初探(1)
    关于冒泡排序与选择排序
    我对直接插入排序的一点理解
    Java中的Scanner类
    String数组与字符串类
    Redis知识点详解
    MySQL操作命令详解
    java中常见面试题整理
    Redis的安装部署
    zookeeper的伪集群部署步骤
  • 原文地址:https://www.cnblogs.com/lacklock/p/3763517.html
Copyright © 2011-2022 走看看