程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-numberOfRowsInSection計數問題

ios-numberOfRowsInSection計數問題

編輯:編程綜合問答
numberOfRowsInSection計數問題

大家好,現在有一難題請高手幫忙,用一個動態數組存儲用戶的照片。

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

數組中包含的照片數量不限,8,20或者100都可以。在tableView中,每行創建4個UIimageView,添加到cell.conentView中。所以要求是:

  • 如果arryData有3個對象,要UITable創建1行
  • 如果arryData有4個對象,要UITable創建1行
  • 如果arryData有5個對象,要UITable創建2行
  • 如果arryData有8個對象,要UITable創建2行
  • 如果arryData有10個對象,要UITable創建3行

以此類推

所以問題就是怎麼實現這樣的數學問題?

   - (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

    }

還是看一下圖片預覽效果吧

CSDN移動問答

最佳回答:


基本上,你需要除以4,四捨五入,由於在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;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved