Objective c 将UITableViewCell实例当作UIView实例使用时,按钮被禁用

Objective c 将UITableViewCell实例当作UIView实例使用时,按钮被禁用,objective-c,uiview,uitableview,uibutton,Objective C,Uiview,Uitableview,Uibutton,我从UITableViewCell扩展了一个自定义视图 在CustomTableViewCell中,我实现了init方法,以便它加载包含按钮的相应.xib 但是,我想重用它,就好像它是一个普通的UIView实例一样。例如,我希望将其添加为视图控制器的子级 // in view controller CustomTableViewCell* customTableViewCell = [[CustomTableViewCell alloc] init]; [self.view addSubview

我从UITableViewCell扩展了一个自定义视图

在CustomTableViewCell中,我实现了init方法,以便它加载包含按钮的相应.xib

但是,我想重用它,就好像它是一个普通的UIView实例一样。例如,我希望将其添加为视图控制器的子级

// in view controller
CustomTableViewCell* customTableViewCell = [[CustomTableViewCell alloc] init];
[self.view addSubview:customTableViewCell];
问题是,可以添加自定义表视图单元格,但无法按下它所持有的按钮。同时,由表视图填充的自定义表视图单元格的按钮工作正常

在上面的屏幕截图中,黄色高亮显示的按钮无法按下,而蓝色高亮显示的按钮可以按下


有人知道它为什么不工作吗?

这只是猜测,但是你创建了一个带有CGRectZero帧的单元格。它不会剪裁它的子视图以使它们仍然可见,但它的子视图不会接触到超视图边界之外的内容(即零)。尝试alloc
initWithFrame:CGRect(/*一些合理的值*/)


一旦开始工作,就可以尝试使用一些布局约束

如果您已将按钮的操作分配给xib文件中的fileowner,则可能需要在“init”方法中传递fileowner。

谢谢@danh。这也是我怀疑的一件事。但是,我确实尝试设置一个正确的rect frame值。。它不起作用。你介意用适当的框架设置发布代码并描述发生了什么吗?