这比任何其他问题都更是一个数学问题。我所拥有的是一个动态数组对象,用于存储用户照片。

arryData = [[NSArray alloc] initWithObjects:@"pic1.png", @"pic2.png", @"pic3.png", @"pic4.png", @"pic5.png", @"pic6.png",@"pic7.png", @"pic8.png",nil];


此数组可以包含任意数量的对象,例如8或20或100。在我的表格视图中,通过将它们添加到cell.contentview中,每行创建了4个UIImageViews。所以如果说


如果arryData有3个对象,那么我想让UITable创建1行
如果arryData有4个对象,那么我想让UITable创建1行
如果arryData有5个对象,那么我想让UITable创建2行
如果arryData有8个对象,那么我想让UITable创建2行
如果arryData有10个对象,那么我希望UITable创建3行
.... 等等


那么,如何对我的arryData中的N个对象执行此操作?

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

        //NSLog(@"Inside numberOfRowsInSection");
        //return [arryData count];

//Cannot think of a logic to use here? I thought about dividing [arryData count]/4 but that will give me fractions

    }


图片值一千字。

最佳答案

因此,基本上,您需要除以四,然后四舍五入。由于Objective-C中的整数除法会被截断(四舍五入为零),因此您可以这样做:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return (arryData.count + 3) / 4;
}


通常,要对整数除法(带正整数)进行四舍五入,请在除法之前将分母-1加到分子上。

如果您为每行的图像数定义了一个常数,请使用它。例如:

static const int kImagesPerRow = 4;

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return (arryData.count + kImagesPerRow - 1) / kImagesPerRow;
}

关于iphone - uitableview numberOfRowsInSection计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17222809/

10-09 16:13