сортировать NSArray из UIImagerview? - PullRequest
2 голосов
/ 31 июля 2010

Я хочу отсортировать NSArray UIImageView в соответствии с их фреймом?

Я пытаюсь использовать NSSortDescriptor, но когда пишу ключ = @ "frame", возникает нераспознанная ошибка селектора. подскажите пожалуйста как отсортировать мой массив.

спасибо заранее.

Ответы [ 2 ]

1 голос
/ 31 июля 2010

Вы всегда можете написать собственную функцию компаратора и определить пользовательское поведение сортировки, используя NSArray sortedArrayUsingSelector метод

0 голосов
/ 03 июля 2014

попробуйте этот код в вашем проекте

NSArray * myArray =  @[

             [[UIImageView alloc] initWithFrame:CGRectMake(0, 50, 200, 100)],
              [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 200, 100)],
              [[UIImageView alloc] initWithFrame:CGRectMake(50, 40, 50, 100)],
              [[UIImageView alloc] initWithFrame:CGRectMake(30, 30, 200, 100)],
              [[UIImageView alloc] initWithFrame:CGRectMake(10, 50, 200, 67)]

    ];


    myArray = [myArray sortedArrayUsingComparator:^NSComparisonResult(UIImageView * view1, UIImageView * view2) {

        if (! CGRectIntersectsRect(view1.frame, view2.frame)) {
            return NSOrderedAscending;
        } else {
            return NSOrderedDescending;
        }

    }];
...