所以我有一个加载customTableCells的TableView。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier1 = @"ReviewTableCell";
reviewCell = [self.reviewTableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (reviewCell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ReviewTableCell" owner:self options:nil];
reviewCell = [nib objectAtIndex:0];
[reviewCell.replyButton addTarget:self action:@selector(reply:) forControlEvents:UIControlEventTouchUpInside]; <----- note! reply button function
}
reviewCell.replyButton.tag = indexPath.row;
if ([[_isExpandList objectAtIndex:indexPath.row]isEqual:@1])
{
[reviewCell.postView setHidden:NO];
}
else if ([[_isExpandList objectAtIndex:indexPath.row]isEqual:@0])
{
[reviewCell.postView setHidden:YES];
}
return reviewCell;
}
如您在customTableCell上看到的,有一个具有以下功能的按钮:
- (void)reply:(UIButton *)sender {
BOOL isExpand = [_isExpandList[sender.tag] boolValue];
[_isExpandList replaceObjectAtIndex:sender.tag withObject:@(!isExpand)];
if ([[_isExpandList objectAtIndex:sender.tag]isEqual:@1])
{
[self.reviewTableView beginUpdates];
[reviewCell.postView setHidden:NO];
[self.reviewTableView endUpdates];
}
else
{
[self.reviewTableView beginUpdates];
[reviewCell.postView setHidden:YES];
[self.reviewTableView endUpdates];
}
}
当用户按下按钮时,发件人单元将“扩展”(高度将扩展)并显示review.postView。但是,单元格只会扩展,而postView直到我向下滚动并向上滚动后才出现。这可能是因为该单元随后被重新加载。按下按钮后,如何确保postView出现。
_isExpandList
只是一个数组,用于跟踪哪些单元格被扩展而哪些单元格没有扩展。我已经在ViewDidLoad中使用以下代码启动了它:_isExpandList = [[NSMutableArray alloc] init];
for (int i = 0; i < 5; i++) {
[_isExpandList addObject:@NO];
}
我将包括cellHeight函数,以防万一,但我认为这并不重要。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([[_isExpandList objectAtIndex:indexPath.row]isEqual:@0])
{
return 100;
}
else{
return 300;
}
}
最佳答案
您需要使用以下命令显式重新加载tableview单元:- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
要么- (void)reloadData
如果您不介意重新加载所有单元的性能会受到影响。
关于ios - 将customTableCell中的 View 设置为在beginUpdate和endUpdate之后可见,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23550709/