我有一個從Json Feed填充的tableview,行數有所不同。我想要做的是每X行插入一個廣告。所以,例如,如果該提要返回23行,然後在第5,10,15和20行,我想插入一個廣告的行。UiTableview插入行每第n個結果
目前我沒有代碼可以顯示,因爲我並不真正瞭解解決此問題的最佳方法。我期望的一個問題是,我添加的行與Json訂閱源不同,我認爲這可能會導致新行出現問題,因爲我不想直接修改數據源,或者至少我認爲我不。
任何幫助表示讚賞。
我有一個從Json Feed填充的tableview,行數有所不同。我想要做的是每X行插入一個廣告。所以,例如,如果該提要返回23行,然後在第5,10,15和20行,我想插入一個廣告的行。UiTableview插入行每第n個結果
目前我沒有代碼可以顯示,因爲我並不真正瞭解解決此問題的最佳方法。我期望的一個問題是,我添加的行與Json訂閱源不同,我認爲這可能會導致新行出現問題,因爲我不想直接修改數據源,或者至少我認爲我不。
任何幫助表示讚賞。
將NSMutableArray作爲對象插入後者。
int numberofrows;
NSMutableArray *objectsToDisplay;
UITableView *tbleView;
就作出如下簡單的表視圖: -
- (void)viewDidLoad
{
tbleView=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 400) style:UITableViewStylePlain];
tbleView.delegate=self;
tbleView.dataSource=self;
objectsToDisplay=[[NSMutableArray alloc] initWithObjects:@"A ",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z",nil];
numberofrows=[objectsToDisplay count];
[self.view addSubview:tbleView];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return numberofrows;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *mycell=[tbleView dequeueReusableCellWithIdentifier:@"cellIdentifier"];
if (mycell==nil) {
mycell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cellIdentifier"];
}
mycell.textLabel.text=[objectsToDisplay objectAtIndex:indexPath.row];
return mycell;
}
每5索引使用後插入一行這種方法
-(IBAction)InsertAdvertizes:(id)sender
{
for (int i=4;i<numberofrows;i=i+5) {
[objectsToDisplay insertObject:@"Hello I am Advertize" atIndex:i];
}
NSLog(@"object is %@",objectsToDisplay);
[tbleView reloadData];
}
您表看起來像圖片顯示如下:---
使用
tableView: numberOfRowsInSection
設置行
columnsToAdd = round(json.objects.count/5)
return json.objects.count+columnsToAdd
然後在
tableView: cellForRowAtIndexPath
回報您objectColumns或adColumn的大小
when indexPath.row Modulo 5 != 0 => return yourJsonObjectColumns
else => return yourAdColumn
我認爲這已經足夠了。如果你有一些代碼,我會再次幫你。
感謝您的快速回答。 numberOfRowsInSection將意味着本質上我會分裂桌面視圖,這是正確的嗎?所以我會在第一部分有1-5,然後是廣告,等等。這聽起來很理想,我會看看執行情況,如果我有更多問題,我會回來。 –
我想這個,但我遇到的問題是,我將添加每第n行的單元格被放置在我的數據源頂部(或可能替換)行。我怎樣才能插入除了我的數據源的行,所以我不會失去任何東西? –
當你做最後一步「當indexPath.row模5!= 0 =>返回yourJsonObjectColumns else =>返回yourAdColumn」你必須決定:採取我的數據源的下一列或「額外的行」。你可以使用1.一個額外的計數器或2.用假列填充你的數據源(我使用了2.) – Starbax
謝謝,非常全面的答案。還有一點,如果我要將包含5個或更少的項目的部分拆分成tableview,然後在它們之間插入廣告,那有可能嗎?所以基本上我想有這樣的事情: - (NSInteger的)numberOfSectionsInTableView:(UITableView的*)的tableView { 回報 <時代的數據源可以通過5分號>} –
row.If你有多少時間間隔之後想要添加廣告作爲sectionHeader?這是可能的。只需按照您在評論和重新加載表中所述的方式傳遞部分數量即可。 – Warewolf
除了標題的段通過標題外,還可以將廣告顯示爲段標題。 – Warewolf