显示不当内容的表格单元格
UITableCell displaying improper conten
我正在显示一个包含图像、按钮和 UIView 的 TabelCell。单击按钮时,它必须显示 UIView。
UIView 正在显示,但问题是,如果我单击第一个单元格中的按钮而不是在第一个单元格中显示 UIView,它会显示第二个单元格或其他单元格。我不知道为什么会这样。
代码如下
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"HomeTablecell";
cell = (HomeTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
cell.vEdit.hidden=TRUE; //UIView hidden initially
[cell.editButton addTarget:self action:@selector(EditButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; //When this button is clicked cell.vEdit become visible
}
-(void)EditButtonClicked:(UIButton*)sender
{
cell.vEdit.hidden=FALSE;
}
1: 确保单元格被正确引用(例如我在点击的按钮上添加了标签)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"HomeTablecell";
cell = (HomeTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
cell.vEdit.hidden=YES; //UIView hidden initially
cell.editBUtton.tag = indexPath.row //suppose has 1 section, you can customise the tag rule based on section/row
[cell.editButton addTarget:self action:@selector(EditButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; //When this button is clicked cell.vEdit become visible
}
-(void)EditButtonClicked:(UIButton*)sender
{
HomeTableCell* theCell = self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:sender.tag inSection:0];
theCell.vEdit.hidden =NO;
}
2: 确保 UIView 隐藏在您的自定义单元格中 class 以重复使用单元格
//Your cell class
- (void)prepareForReuse {
[super prepareForReuse];
self.vEdit.hidden=YES;
}
我的问题的答案是 FPPopover,当我使用那个控件时,视图正好显示在我想要的位置
我正在显示一个包含图像、按钮和 UIView 的 TabelCell。单击按钮时,它必须显示 UIView。
UIView 正在显示,但问题是,如果我单击第一个单元格中的按钮而不是在第一个单元格中显示 UIView,它会显示第二个单元格或其他单元格。我不知道为什么会这样。
代码如下
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"HomeTablecell";
cell = (HomeTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
cell.vEdit.hidden=TRUE; //UIView hidden initially
[cell.editButton addTarget:self action:@selector(EditButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; //When this button is clicked cell.vEdit become visible
}
-(void)EditButtonClicked:(UIButton*)sender
{
cell.vEdit.hidden=FALSE;
}
1: 确保单元格被正确引用(例如我在点击的按钮上添加了标签)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"HomeTablecell";
cell = (HomeTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
cell.vEdit.hidden=YES; //UIView hidden initially
cell.editBUtton.tag = indexPath.row //suppose has 1 section, you can customise the tag rule based on section/row
[cell.editButton addTarget:self action:@selector(EditButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; //When this button is clicked cell.vEdit become visible
}
-(void)EditButtonClicked:(UIButton*)sender
{
HomeTableCell* theCell = self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:sender.tag inSection:0];
theCell.vEdit.hidden =NO;
}
2: 确保 UIView 隐藏在您的自定义单元格中 class 以重复使用单元格
//Your cell class
- (void)prepareForReuse {
[super prepareForReuse];
self.vEdit.hidden=YES;
}
我的问题的答案是 FPPopover,当我使用那个控件时,视图正好显示在我想要的位置