【发布时间】:2015-10-30 19:31:19
【问题描述】:
我正在构建一个应用程序来跟踪大学课程的阅读作业。每个 ReadingAssignment 都包含一个 Bool 值,指示读者是否已完成阅读作业。 ReadingAssignments 被收集到 WeeklyAssignment 数组中。我希望用户能够触摸标签并显示复选标记并将作业显示为已完成。我希望这种触摸也可以将 .checked 属性更新为 true,以便我可以保留数据。 所以,我试图让 gestureRecognizer 调用 labelTicked() 方法。这有效并打印到控制台。但是,当我尝试传入赋值参数时,它会编译,但会因“无法识别的选择器”错误而崩溃。我已经阅读了我可以在这里找到的所有主题,但还没有找到解决方案。他们都说“:”表示带有参数的选择器,但仍然不行。 你能看出我做错了什么吗?
func configureCheckmark(cell: UITableViewCell, withWeeklyAssignment assignment: WeeklyAssignment) {
let checkLabel = cell.viewWithTag(1002) as! UILabel
checkLabel.userInteractionEnabled = true
let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelTicked:assignment"))
checkLabel.addGestureRecognizer(gestureRecognizer)
}
@objc func labelTicked(assignment: WeeklyAssignment) {
assignment.toggleCheckmark()
if assignment.checked {
label.text = "✔︎"
} else {
label.text = ""
}
}
我也想传入 UILabel checkLabel 以便我可以在 labelTicked() 方法中更新它。 感谢您的帮助。
【问题讨论】:
标签: ios swift selector uitapgesturerecognizer