3

私はUIImageViewsの配列を持っています:

NSMutableArray *imagesArray = [[NSMutableArray alloc] init];
[imagesArray addObject:smallBox];
[imagesArray addObject:medBox];
[imagesArray addObject:largeBox];
[imagesArray addObject:xlBox];

これらのボックスは画面上で移動しています。画面の左側(x位置)にあるボックスが配列の最初の位置になるように配列をソートしたいと思います。プロパティにアクセスする方法を知っていれば、それを理解できると思います配列内の画像の。imagesArray[0].frame.origin.x; のようなコードを使用してみました。しかし、それは機能しません。どんな助けでも大歓迎です。

4

1 に答える 1

1

私は次のようにします:

NSSortDescriptor *desc = [NSSortDescriptor sortDescriptorWithKey:@"frame.origin.x" ascending:YES];
[imagesArray sortUsingDescriptors:@[desc]];

smallBoxこれは、配列内のすべてのオブジェクトがビューであることを前提としていmedBoxます。また、画像ビューの座標を希望どおりに並べ替えるには、それらはすべて同じスーパービューのサブビューである必要があることに注意してください。そうでない場合は、リンゴとリンゴを比較していません。ビューがすべて同じビューのサブビューではない場合、比較する前にまずビューを画面座標に変換するコンパレータを作成する必要があります。UIImageViewUIImagexframe

あなたの式 ( ) はでのビューの座標をimagesArray[0].frame.origin.x与えるはずです。ximagesArray[0]

于 2012-11-26T07:30:23.833 に答える