问题描述
将Xcode更新到版本12之后,每个添加到UITableViewCell的UIButton如下:
self.addSubview(someButton)
在模拟器(iOS版本14)中,按钮不起作用(当用户点击按钮时,什么也没有发生),但在实际设备中,一切正常。当我将UIButton这样添加到单元格中时,即使在模拟器中,一切也可以正常工作:
self.contentView.addSubview(receptionButton)
为什么会这样?我通过将UIButton(self.contentView.addSubview)添加到UITableViewCell来正确吗?
解决方法
我通过添加UIButton这样正确吗 (self.contentView.addSubview)到UITableViewCell?
是。
那是最正确的方法!您可以直接将子视图添加到self
(单元格本身)中,就像在您的第一个代码块BUT中一样,将来您将100%遇到错误(我做了),就像您现在刚刚经历的那样
为什么会这样?
这是我从Apple可以找到的最好的解释:
The content view of a UITableViewCell object is the default superview for content that the cell displays. If you want to customize cells by simply adding additional views,you should add them to the content view so they position appropriately as the cell transitions in to and out of editing mode.
https://developer.apple.com/documentation/uikit/uitableviewcell/1623229-contentview