我需要显示6个视图,每个视图应显示20个项目(UIButtons)。我有一个大的NSArray,其中包含所有6个视图的项目。
例如,视图1应为0-19项,视图2应为项目20-39。
如何从阵列中提取相关范围?也许使用长度为20的NSRange,但是每个视图都需要更改起始位置...理想情况下没有switch语句:)
由于
答案 0 :(得分:62)
static const NSUInteger ItemsPerView = 20;
NSUInteger startIndex = viewIndex * ItemsPerView;
NSUInteger count = MIN( completeArray.count - startIndex, ItemsPerView );
NSArray *itemsForView = [completeArray subarrayWithRange: NSMakeRange( startIndex, count )];
答案 1 :(得分:4)
你的答案在你的问题中。只需跟踪哪个NSRange属于哪个视图,并使用它来使用NSArray的-subarrayWithRange:方法在容器中查找必要的对象。