Iphone 如何对图像数组进行排序

Iphone 如何对图像数组进行排序,iphone,ios,uiimage,nsmutablearray,Iphone,Ios,Uiimage,Nsmutablearray,如何根据图像的高度对NSMutableArray图像进行排序? 我需要找到每个图像的高度并按顺序添加,还是有更简单的方法?如果是UIImage对象数组,您可以使用以下方法: NSArray * sortedArray = [source sortedArrayUsingComparator:^(id obj1, id obj2){ UIImage *t1 = (UIImage *)obj1; UIImage *t2 = (UIImage *)obj2; if

如何根据图像的高度对NSMutableArray图像进行排序?
我需要找到每个图像的高度并按顺序添加,还是有更简单的方法?

如果是UIImage对象数组,您可以使用以下方法:

NSArray * sortedArray = [source sortedArrayUsingComparator:^(id obj1, id obj2){

        UIImage *t1 = (UIImage *)obj1;
        UIImage *t2 = (UIImage *)obj2;

if (t1.size.height > t2.size.height)
return (NSComparisonResult)NSOrderedAscending;
else
return (NSComparisonResult)NSOrderedDescending;
}];

如果是UIImage对象的数组,则可以使用:

NSArray * sortedArray = [source sortedArrayUsingComparator:^(id obj1, id obj2){

        UIImage *t1 = (UIImage *)obj1;
        UIImage *t2 = (UIImage *)obj2;

if (t1.size.height > t2.size.height)
return (NSComparisonResult)NSOrderedAscending;
else
return (NSComparisonResult)NSOrderedDescending;
}];

嗯,您可以研究NSArray和NSMutableArray的文档,并从几种方法中选择一种。或者你可以请别人帮你做你的工作。我觉得这有点不公平。他并不是要求一个通用的方法来对数组进行排序;他正在寻求一种方法,根据图像的属性对图像数组进行排序,而NSMutableArray的文档中不会涉及这些内容。@davidf2281——如何不涉及这些内容?新手最容易理解的是sortedarrayusing函数,因为它使用一个简单的C类函数来完成“脏活”。但是NSArray有六个排序函数,NSMutableArray有五个排序函数,所以他有很多选择。最难的部分是挑选一个。它没有包括在内,因为在
NSMutableArray
上没有
sortarrayofimagesbymageheight
方法。但是,是的,我同意这并不特别难搞清楚。@davidf2281-这就是所谓的“编程”。好吧,你可以研究NSArray和NSMutableArray的文档,从几种方法中选择一种来实现这一点。或者你可以请别人帮你做你的工作。我觉得这有点不公平。他并不是要求一个通用的方法来对数组进行排序;他正在寻求一种方法,根据图像的属性对图像数组进行排序,而NSMutableArray的文档中不会涉及这些内容。@davidf2281——如何不涉及这些内容?新手最容易理解的是sortedarrayusing函数,因为它使用一个简单的C类函数来完成“脏活”。但是NSArray有六个排序函数,NSMutableArray有五个排序函数,所以他有很多选择。最难的部分是挑选一个。它没有包括在内,因为在
NSMutableArray
上没有
sortarrayofimagesbymageheight
方法。但是,是的,我同意这并不特别难弄清楚。@davidf2281-这就是所谓的“编程”。关于
NSOrderedSame
…?备注:如果将块声明为
^NSComparisonResult(UIImage*t1,UIImage*t2),则可以删除所有类型强制转换
。如果将块声明为
^NSComparisonResult(UIImage*t1,UIImage*t2)
,则可以删除所有类型转换。