我有一个UITableViewController,我正在使用自定义的UITableViewCell.单元格包含图像,标签和按钮.一切都按预期工作,除了按钮.当按下按钮时,没有任何反应.只有单元格被选中.
我在IB中从按钮到我的自定义TweetTableViewCell类连接.
@property (weak,nonatomic) IBOutlet UIButton *cellFollowButton; - (IBAction)followButtonTappedonCell:(id)sender;
我在followButtonTappedonCell动作中将一些文本写入控制台.但是当按下按钮时,没有任何反应.在我看来,有些视图在到达按钮之前消耗了水龙头.为了使它更混乱…当我添加一个按钮可能UITableViewController程序化这样:
[cell.cellFollowButton addTarget:self action:@selector(customActionPressed) forControlEvents:UIControlEventTouchDown]; [cell addSubview:cell.cellFollowButton];
…它只是工作.
我读到其他文章,禁用“用户互动启用”解决了类似的问题,但它不在我的情况.
在UITableViewCells中使用按钮时,我确信许多其他人都必须遇到此问题.任何帮助是高度赞赏.
我在使用Xcode 5 for iOS 7.
解决方法
我建议你通过
this link.它清楚地描述你的问题.但是,我已经尝试提取所需的信息.
许多类型的事件依赖于响应者链来进行事件传递.响应者链是一系列链接的响应者对象.它从第一个响应者开始,以应用对象结束.如果第一个响应者无法处理事件,则会将事件转发到响应者链中的下一个响应者.
响应者对象是可以响应和处理事件的对象. UIResponder类是所有响应者对象的基类,它定义了程序接口,不仅用于事件处理,还针对常见的响应者行为. UIApplication,UIViewController和UIView类的实例是响应者,这意味着所有视图和大多数关键控制器对象都是响应者.
在您的案例中,当您在customTableViewCell类中编写事件方法时,您的方法未被调用.这是因为TableViewCell没有参与到Responder链中.