我的问题是:在Swift 3语言中,采用以下方法制作UILabel在风格上是否可以接受?我很想说"如果它汇编它苍蝇"但是我不想养成使用这个"捷径的习惯。如果它以后会咬我的话。此外,如果这是可以接受的,使用这种方法有一些缺点,对于像我这样的新手来说不是很明显吗?
请注意,我不是在寻找实现代码的方法,我有一个。我问的是,从语言风格的角度来看,我所拥有的解决方案是否可以接受。
我现在一直试图让UILabel在表格单元格中接受TapGesture 2天,无论我尝试什么方法,即使它会编译,总会出现某种错误。在预感中,我去了我的故事板上查看表格视图,并添加了一个按钮在顶部(没有堆叠,或对齐,或类似的东西 - 实际上占据了故事板上相同的2D空间)原型细胞。我删除了按钮文本,将其链接到表格视图单元格代码并实现了一些基本功能,将UILabel上的文本更改为红色并返回。所有这些功能都完全像我预期的那样。我单击按钮,文本从黑色变为红色,再次单击时返回。 UILabel文本在白色背景上的表格单元格中是静态的,我的真实功能是不会更改文本,它将通过该视图的委派来改变另一个视图。
为什么这样?即使我检查UILabel使用交互框并按照其他一些问题和答案进行操作,我也无法控制+将UILabel拖动到表格视图单元格并进行操作,该选项根本就没有。 t存在于下拉菜单中。如果我控制+将UILabel拖动到表视图控制器,它就可用。这对我来说是一种感觉,因为它是感知触摸的表视图控制器(对吗?)。但是,另一方面,当我按照this question的答案时,我在表格视图单元格中有一个开关可以正常工作。故事板 - 代码交互(控制+拖动)的简单功能阻止我得到我想要的东西。也许控制+拖动应该允许我做出一个动作但不是吗?我不知道。我不想单独使用UIButton,因为UILabel的文本缩放功能非常方便。
答案 0 :(得分:0)
如果您只想识别表格单元格上的点击,请将该类作为表格视图的委托
tableView.delegate = self
并实施
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//your code here
}
我也非常感谢您花时间阅读有关UITableViews的更多信息。每个UITableViewCell都有一个标签。请考虑以下代码:
tableView.dataSource = self // this code will ideally be in init
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "lovCell")
cell.textLabel?.text = dummyData[indexPath.row]
return cell
}