如何将自定义uitableviewcell一一附加到uitableview
Posted
技术标签:
【中文标题】如何将自定义uitableviewcell一一附加到uitableview【英文标题】:How to append custom tableviewcells to tableview one by one 【发布时间】:2019-11-25 10:36:39 【问题描述】:我有两个 tableview 控制器,比如说 PopoverElementsListTable ,ElementsViewTable。当我单击一个 PopoverElementsListTable 单元格时,一个 tableview 将处于弹出状态,一个自定义单元格必须添加到 ElementsViewTable。当我尝试将另一个单元格添加到 ElementsViewTable 时,我只能附加一个单元格,它被前一个单元格替换.
#pragma mark - TableView delegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:
(NSInteger)section
if (tableView == PopoverElementsListTable)
return [myArray count];
else if (tableView == ElementsViewTable)
return 1;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:
(NSIndexPath *)indexPath
if (tableView == PopoverElementsListTable)
static NSString *cellId = @"autoaddress";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
cellId];
if (cell == nil)
cell = [[UITableViewCell alloc]initWithStyle:
UITableViewCellStyleDefault reuseIdentifier:cellId];
cell.textLabel.text = [myArray objectAtIndex:indexPath.row];
return cell;
else
NSLog(@"_selectedIndex %lu",(unsigned long)_selectedIndex);
if(_selectedIndex == 1)
AutoFillAddressFormElementcell * cell = [tableView dequeueReusableCellWithIdentifier:@"autoAddressCell"];
if (!cell)
cell = [[AutoFillAddressFormElementcell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"autoAddressCell"];
return cell;
else if(_selectedIndex == 2)
NSLog(@"Test @ 123");
AddressSetterFormElementCell * cell = [tableView dequeueReusableCellWithIdentifier:@"setAddressCell"];
if (!cell)
cell = [[AddressSetterFormElementCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"setAddressCell"];
return cell;
else
static NSString *cellId = @"autoaddress";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil)
cell = [[UITableViewCell alloc]initWithStyle:
UITableViewCellStyleDefault reuseIdentifier:cellId];
cell.textLabel.text = @"List";
return cell;
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath
if(tableView == PopoverElementsListTable)
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSLog(@"Section:%ld Row:%ld selected and its data is %@",
(long)indexPath.section,(long)indexPath.row,cell.textLabel.text);
[_transarentView setHidden:true];
_selectedIndex = indexPath.row + 1;
NSLog(@"number %lu",(unsigned long)_selectedIndex);
[_displayFromElementTableView reloadData];
if(tableView == ElementsViewTable)
我知道我只能附加一项,因为 numberOfRowsInSection 委托中的返回 1。我尝试用另一个数字替换,但我得到的是所有单元格都是相同的。我怎样才能在这里获得动态计数?如何一一追加不一样的自定义单元格。
【问题讨论】:
【参考方案1】:您需要通过识别 indexpath 来做到这一点。
if (indexPath.row == 0)
Customcell1 *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
else if (indexPath.row == 1)
Customcell2 *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
return cell;
等等.... 如果需要,您也可以查看表格视图。
【讨论】:
以上是关于如何将自定义uitableviewcell一一附加到uitableview的主要内容,如果未能解决你的问题,请参考以下文章
将自定义 UITableViewCell 与 ViewCellRenderer 一起使用时出现 NullReferenceException
将自定义 UITableViewCell 从 nib 加载到 Swift 中的 UIViewController
如何将自定义sql附加到Spring Data JPA插入/更新
如何将自定义单元格连接到 UIViewController?