xGo*_*Pox 6 sorting objective-c uiview nsarray ios
我想根据他们的frame.origin.y对UIViews的NSMutableArray进行排序,我希望y的最低视图是第一个等等.可能是2个UIViews具有相同的起源.这有一个现有的方法吗?
Dru*_*erB 16
NSMutableArray有几种排序方法.选择其中一个,实现排序选择器,块或功能并比较y值.以下是使用块的示例:
NSComparator comparatorBlock = ^(UIView *obj1, UIView *obj2) {
if (obj1.frame.origin.y > obj2.frame.origin.y) {
return (NSComparisonResult)NSOrderedDescending;
}
if (obj1.frame.origin.y < obj2.frame.origin.y) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
};
[array sortUsingComparator:comparatorBlock];
Run Code Online (Sandbox Code Playgroud)
虽然这不是 frame.origin.y,但您也可以通过使用 SortDescriptor 并将 layer.position.y 作为关键来实现。
[array sortedArrayUsingDescriptors:@[[[NSSortDescriptor alloc] initWithKey:@"layer.position.y" ascending:YES]]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |