在Storyboard中更改Prototype Cell中的UIButton状态

时间:2013-11-12 16:43:52

标签: ios iphone objective-c ipad

我在故事板中的Prototype Cell中有两个按钮。一个用于IBAction,另一个用于IBOutlet。然后将UITableViewCell子类化为MyTableViewCell并将其指向故事板中的Prototype Cell。然后我控制+将动作按钮拖动到MyTableViewCell以创建IBAction,并对出口按钮执行相同操作以创建IBOutlet。

在方法中:

  -(void)buttonPress:(UIButton *)sender
  {
      MyTableViewCell *cell = (MyTableViewCell *)[[sender superview] superview];
      cell.outletButton.selected = YES;
      ...
  }

我收到错误消息:

原因:' - [UITableViewCellScrollView outletButton]:无法识别的选择器发送到实例

我做错了什么?我尝试做的是在Prototype Cell中有两个按钮。按下一个按钮时,另一个按钮可以更改状态以显示背景图像,例如选中或突出显示。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在iOS6及更早版本上,您的代码似乎很好,但是在iOS 7上,如果您想要进入单元格,则必须再执行superview步骤。所以它将是:

MyTableViewCell *cell = (MyTableViewCell *)[[[sender superview] superview] superview];

答案 1 :(得分:0)

以这种方式导航视图层次结构通常不是一个好主意,正如您所发现的那样,可能会破坏您的代码的操作系统版本之间存在差异。

如果您的IBAction和IBOutlet都连接到MyTableViewCell类,您只需使用:

- (void)buttonPress:(UIButton *)sender
{
  self.outletButton.selected = YES;
  ...
}

您还需要在MyTableViewCell中实现prepareForReuse:,以便在重复使用单元格时停止复制按钮的属性。