这个也是在网上找的别人的,我这里的需求是:在一个tableview的cell创建了两个ImageView 分别展示不同的图片 还有标题等。但是返回的数据却是用一个数组返回来的 ,所有就把数组分割成2个一组的多个数组。然后再进行赋值。希望能帮到大家。
这里记录一下:其实有写界面不用CollectionView做也行,一个cell上循环创建多个控件以后, 然后从后台拿到数据以后用下面的方法,把数组分割成你想要的状态然后,给控件添加tag值,最后Setter一下cell里的数组,给数组赋值,接下里就按照正常的获取数据的方式去获取就可以了。
- (NSArray*)splitArray: (NSArray*)array withSubSize : (int)subSize{
// 数组将被拆分成指定长度数组的个数
unsigned long count = array.count% subSize ==0? (array.count/ subSize) : (array.count/ subSize +1);
// 用来保存指定长度数组的可变数组对象
NSMutableArray *arr = [[NSMutableArray alloc] init];
//利用总个数进行循环,将指定长度的元素加入数组
for(inti =0; i < count; i ++) {
//数组下标
intindex = i * subSize;
//保存拆分的固定长度的数组元素的可变数组
NSMutableArray *arr1 = [[NSMutableArray alloc] init];
//移除子数组的所有元素
[arr1removeAllObjects];
intj = index;
//将数组下标乘以1、2、3,得到拆分时数组的最大下标值,但最大不能超过数组的总大小
while(j < subSize*(i +1) && j < array.count) {
[arr1 addObject:[array objectAtIndex:j]];
j +=1;
}
//将子数组添加到保存子数组的数组中
[arraddObject:[arr1copy]];
}
return[arrcopy];
}
网友评论