更新 Xcode 12 后如何修复操作按钮?
Posted
技术标签:
【中文标题】更新 Xcode 12 后如何修复操作按钮?【英文标题】:How can I fix action button after update Xcode 12? 【发布时间】:2020-09-23 11:45:37 【问题描述】:Xcode 更新 (Xcode 12) 后,我的操作按钮停止工作。当我单击按钮时,我发现这些功能不起作用(就像那里没有按钮)。我不明白为什么。这些按钮放置在TableView Cell
。如何修复这些功能?
这里是我的动作按钮功能:
@objc func addAction(sender: UIButton)
let indexPath = IndexPath(row: sender.tag, section: 0)
let cell = tableView.cellForRow(at: indexPath) as! customCell
cell.count += 1
cell.countBasketLabel.text = "x\(cell.count)"
let detailGelen = detailsModel[indexPath.row]
selectedItemName.append(detailGelen.itemDetailName!)
selectedItemPrice.append(detailGelen.itemDetailPrice!)
UserDefaults.standard.set(selectedItemName, forKey: "urunadi")
UserDefaults.standard.set(selectedItemPrice, forKey: "urunfiyat")
tableView.reloadData()
这是我的按钮代码:
let addButton: UIButton =
let button = UIButton(type: .system)
button.setImage(UIImage(named: "add"), for: .normal)
button.tintColor = .black
button.layer.cornerRadius = 5
button.addTarget(self, action: #selector(testdetail.addAction(sender:)), for: .touchUpInside)
return button
()
编辑:
我下载了旧版本的 Xcode(11.5 (11E608c))。当我使用 Xcode 11.5 ios14 运行按钮时,但当我使用 Xcode 12 运行时,IOS 14 按钮不起作用。我还没有找到解决方案。我愿意接受建议。
编辑 2:
我确定 Xcode 12 中存在错误。因为ScrollToIndex
也不起作用,当我用 Xcode 11.5 模拟它时它也起作用了。(在 IOS 14 及更低版本中)
【问题讨论】:
尝试使用lazy var addButton: UIButton
而不是let addButton: UIButton
。我已经检查过了,它应该可以按预期工作。
我照你说的做了,但还是不行。
很奇怪,我已经用 Xcode 12.0 (12A7209) 测试了你的代码,lazy var
UIButton
和 addAction
被正确调用。添加按钮可能有任何问题。我刚刚从viewDidLoad()
中的代码将addButton
添加到导航栏。
真的很奇怪,这个按钮在自定义表格视图单元格中。但我不明白为什么这不起作用。其他按钮在我的应用程序中工作,所以可能是 tableview 单元格导致这个?
好吧,我更喜欢使用闭包(回调),你可以查看this implementation。我已经测试了您的代码,但没有在自定义单元中实现。
【参考方案1】:
我将按钮直接添加到单元格内容视图中,它对我有用。
cell.contentView.addSubview(button)
【讨论】:
以上是关于更新 Xcode 12 后如何修复操作按钮?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复一些 Xcode 13 错误,例如无法正确跳转到定义?