gpt4 book ai didi

ios - 选择时更改 UITableViewCell

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:18:21 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个 UITableView 和两个不同的自定义 UITableViewCell。 UITableView 最初加载了一种自定义 UITableViewCell。当在我的 UITableView 中选择了一个单元格时,我想更改使用其他类型的自定义 UITableViewCell 选择的单元格。这可能吗?让我听听你得到了什么。

谢谢,诺兰

#pragma mark - UITableView delegate methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.array count];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row == [self currentCellIndex]) {
[self setCurrentCellIndex:-1];

NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"NewCell" owner:self options:nil];

OldCell *cell = (OldCell *)[tableView cellForRowAtIndexPath:indexPath];
cell = [nibs objectAtIndex:0];
}
else {
[self setCurrentCellIndex:indexPath.row];

NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"NewCell" owner:self options:nil];

NewCell *cell = (NewCell *)[tableView cellForRowAtIndexPath:indexPath];
cell = [nibs objectAtIndex:0];
}
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"OldCell";

OldCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"OldCell" owner:self options:nil];
cell = [nibs objectAtIndex:0];
}

return cell;
}

最佳答案

在您的 didSelectRow... 方法中,您需要更新一个标志(存储在实例变量中)以指示单元格的新“模式”。然后通过调用传入所选 indexPath 的 tableView reloadRowsAtIndexPaths:withRowAnimation: 重新加载行。

在您的 cellForRow... 方法中,使用标志来确定将两种类型的单元格中的哪一种用于该行。

关于ios - 选择时更改 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15307190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com