2015-12-15 86 views
0

我需要在表格視圖中的每五個新聞單元格之後添加一個僅包含圖像的廣告單元格。Tableview中每五個單元格之後的廣告單元

如果我要爲廣告單元添加第二部分,廣告單元將顯示在所有新聞單元格之後。 如果我在indexPath.row == 4時添加廣告單元,我的第五個新聞單元將不會出現,因爲cell.details = news[indexPath.row]

任何建議我該怎麼做?謝謝。

回答

5

在UITableViewDataSource的方法的cellForRowAtIndexPath下一步:

if (indexPath.row % 5 == 0) { 
// configure ad cell 
} else { 
// configure usual cell with news[indexPath.row - (indexPath.row/5)] 
} 
+0

然後我失去了我的第五條消息 – aaisataev

+2

@aaisataev我已經更新了我的答案 – Oleshko

+0

T他的問題是我的自定義單元格覆蓋了我的數據源中的項目。什麼是配置這個最好的方法,以便我的所有數據源都顯示在每個第n行添加的自定義單元格中? –

2

你需要弄清楚一個系統,以獲得正確的數據,你的細胞:

0 NEWS

1 NEWS

2新聞

3 NEWS

4 NEWS

5 AD < ----- 「5」。 =>(currentRow%5 == 0)

6新聞< -----「6.」 =>(6 - (currentRow/5)

你看到一個系統

你可以這樣做:

if ((row % 5) == 0) { 
    //Ad stuff here 
} else { 
    data = tabledata[row - (row/5)]; 
    //news stuff here using data 
} 
+0

我想它會工作,我會嘗試 – aaisataev

+0

我試着這個,但我的自定義單元格覆蓋了我的數據在某些地方。 –

1

做這樣的..

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 5; 
} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 4;//add your own number, might be totalNumberOfNewsItems/5 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    int reqIndex = indexPath.section*(5) + indexPath.row; 
    // get data from array like news[reqIndex]; 
} 
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    // return your ad view based on section value 
} 
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 44; // change to your required value 
} 
+0

這很有趣,稍後再試 – aaisataev

+1

在cellForRowAtIndexPath中做了一個改變看看.. – raki

0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (indexPath.row % 5 == 0) { 
     //configure ad cell 
    } else { 
     //configure usual cell 
    } 
} 
+0

重複的答案 – aaisataev

相關問題