按钮在使用 UITableViewCell 实例时被禁用,就像它是 UIView 实例一样
Posted
技术标签:
【中文标题】按钮在使用 UITableViewCell 实例时被禁用,就像它是 UIView 实例一样【英文标题】:Button is disabled when using UITableViewCell instance as if it was a UIView instance 【发布时间】:2013-07-30 05:35:16 【问题描述】:我从 UITableViewCell 扩展了一个自定义视图。
在 CustomTableViewCell 中,我实现了 init 方法,以便它加载包含按钮的相应 .xib。
但是,我想像普通 UIView 实例一样重用它。例如,我想将其添加为我的视图控制器的子项
// in view controller
CustomTableViewCell* customTableViewCell = [[CustomTableViewCell alloc] init];
[self.view addSubview:customTableViewCell];
问题是,可以添加自定义表格视图单元格,但无法按下它持有的按钮。同时,由表格视图填充的自定义表格视图单元格的按钮工作正常。
https://www.evernote.com/shard/s27/sh/59f7b828-f65a-41dc-9156-40a985fceac8/9edb04b8e5c821ad7a46eb714cc776dc
在上面的截图中,黄色高亮的按钮不能按下,而蓝色的可以。
有人知道为什么它不起作用吗?
【问题讨论】:
【参考方案1】:这是一个猜测,但您使用 CGRectZero 框架创建单元格。它不会剪辑它的子视图,因此它们仍然可以被看到,但它的子视图不会在父视图的边界(为零)之外得到触摸。试试 alloc initWithFrame:CGRect(/* some reasonable values */)
。
一旦你得到它的工作,你可以尝试一些布局约束。
【讨论】:
感谢@danh。这也是我怀疑的一件事。但是,我确实尝试设置一个正确的矩形框值..它没有工作T_T。 您介意发布具有正确框架设置的代码并描述发生了什么吗?【参考方案2】:如果您已将按钮的操作分配给 xib 文件中的文件所有者,您可能需要在 'init' 方法中传递文件所有者。
【讨论】:
以上是关于按钮在使用 UITableViewCell 实例时被禁用,就像它是 UIView 实例一样的主要内容,如果未能解决你的问题,请参考以下文章
向左滑动时如何处理UITableViewCell删除按钮动画?
滚动时如何向 UITableViewCell 添加更多按钮?