Cha*_*ska 12 uitableview ibaction ios swift
我有一个自定义UITableViewCell子类,其中包含IBAction从nib连接的一些方法.
在iOS 8下,一切都按预期工作.如果用户点击其中一个按钮,IBAction则调用相应的按钮.如果用户点击单元格上的任何其他位置,UITableView didSelectRowAtIndexPath则会调用该单元格.
在iOS 9下,我的IBAction方法永远不会被调用.UITableView didSelectRowAtIndexPath无论用户在单元格中的哪个位置(按钮与否),都会始终触发.
该项目是在Xcode 6/Swift 1.2下编译的.
我在Apple论坛上发现这篇文章没有解决方案.他们似乎有同样的问题.
Cha*_*ska 27
我想出了解决方案,希望这个答案可以节省别人的时间.
我继承了这个代码库,它有一些问题.在UITableViewCell's那些没有的iOS 9下工作没有使用UITableViewCellW/A碎粒ContentView.相反,有人创建了一个UIView笔尖,然后将其指向自定义UITableViewCell子类.笔尖没有一个ContentView,显然iOS 9对此更加挑剔.这个实现在iOS 8下工作正常,没有编译器或运行时错误或警告.
解决方案是创建一个新的UITableViewCell子类,让Xcode自动为它创建nib.然后我复制了旧笔尖的所有UI和代码,并将其粘贴到ContentView新笔尖中.然后,我必须修复约束并重新连接到自定义子类的连接.
只需在tableView cellForRowAtIndexPath方法中添加此行即可
cell.contentView.userInteractionEnabled = false;
return cell;
Run Code Online (Sandbox Code Playgroud)
但这不是一个合适的解决方案.
tableViewCell即使您使用自定义单元格/ xib ,iOS 9 也会将内容视图放入a中.在自定义单元格之后添加的内容视图,它位于其上方.
为了解决这个正确只是更换自定义单元格/厦门国际银行的观点,UITableviewCell从对象库[从那里你平时拖放UIButton,UILabel等...]
| 归档时间: |
|
| 查看次数: |
5885 次 |
| 最近记录: |