我見過的一些例子像是否可以根據標籤對UIView的NSArray集合進行排序?
[someArray sortUsingSelector:@selector(compare:)];
我正在尋找存儲UIViews集合一個例子,我想給他們按升序或基於標籤的降序我假設編程時一個新的UIView被創建。
如果有人能提供一個代碼示例或說明,這將是夢幻般的
我見過的一些例子像是否可以根據標籤對UIView的NSArray集合進行排序?
[someArray sortUsingSelector:@selector(compare:)];
我正在尋找存儲UIViews集合一個例子,我想給他們按升序或基於標籤的降序我假設編程時一個新的UIView被創建。
如果有人能提供一個代碼示例或說明,這將是夢幻般的
NSArray提供了許多方法來對數組進行排序(所有列在NSArray文檔的「排序」標題下)。您可以定義一個函數,一個方法或一個排序描述符來根據它們的標籤比較視圖進行排序。舉例來說,這裏是一個使用NSSortDescriptor的實現:
NSSortDescriptor *ascendingSort = [[NSSortDescriptor alloc] initWithKey:@"tag" ascending:YES];
NSSortDescriptor *descendingSort = [[NSSortDescriptor alloc] initWithKey:@"tag" ascending:NO];
NSArray *sortedArray = [someArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:ascendingSort]];
- (NSComparisonResult)compareTags:(UIView *)view {
if ([self tag] == [view tag]) return NSOrderedSame;
if ([self tag] > [view tag]) return NSOrderedDescending;
return NSOrderedAscending;
}
假設我得到的排序正確的,那就是,對於這種使用方法必須是對的UIView(輕鬆地完成一個類別)。還有其他幾種獲得相同結果的方法,請參閱文檔Sorting Arrays。
感謝這個,我已經走了NSSortDescriptor解決方案,但我很欣賞的聲音回覆! – Chris 2010-04-09 23:24:40
謝謝,更多的課程可以閱讀! – Chris 2010-04-09 23:23:11
嗨查克我想知道如果你可以進一步協助,我很好奇這種排序會使用UIView的frame.origin.y屬性(或任何財產),我很努力去理解排序工作的方式在Objective-C中,我相信我會到達那裏,只是希望儘早這樣做而不是後來!謝謝 – Chris 2010-04-14 20:22:19