表格单元格显示不正确的内容

时间:2015-02-13 02:49:12

标签: ios objective-c xcode uitableview uiview

我正在显示一个包含图像,按钮,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;
}

2 个答案:

答案 0 :(得分:0)

我的问题的答案是FPPopover,当我使用该控件时,视图正好显示在我想要的位置

https://github.com/50pixels/FPPopover/

答案 1 :(得分:-1)

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隐藏在您重新使用的单元格的自定义单元格类中

//Your cell class
- (void)prepareForReuse {
    [super prepareForReuse];
    self.vEdit.hidden=YES;
}