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];
    }
  • 相关阅读:
    望图知意BlogPatrol又挂了
    看你知道不知道之-制作数据字典
    mount: none already mounted or /cgroup busy
    [zz]OpenStack中虚拟机的监控
    guestfs
    Ubuntu 10.04 wine 中运行某个门
    [zz]Wine完全使用指南——从基本到高级
    [zz]史上最快消息内核——ZeroMQ
    [zz]OpenStack Compute(Nova)功能分析
    [zz][技术] 完美使用 WINE 来运行 RTX ,QQ
  • 原文地址:https://www.cnblogs.com/lacklock/p/3763517.html
Copyright © 2011-2022 走看看