我有一个tableView,我已经放了两个文本标签(当我完成时我需要3个)。
这两个标签都出现了,但我的问题是detailTextLabel
与titlelabel
内联,显然不应该这样。
我试图在行中添加动态大小调整,因为我认为单元格的高度限制了detailtext标签以适应titlelabel
下面的一行。
但事实并非如此。
这就是我所拥有的:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var myCell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier")
if myCell == nil {
myCell = UITableViewCell(style: .value1, reuseIdentifier: nil)
myCell = UITableViewCell(style: .value2, reuseIdentifier: nil)
}
let item: Parsexml = feedItems[indexPath.row] as! Parsexml
myCell?.textLabel!.text = item.name! + " | " + item.address!
myCell?.detailTextLabel?.text = "Category:" + item.city!
myCell?.textLabel?.textColor = UIColor(white: 1, alpha: 1)
myCell?.textLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
myCell?.detailTextLabel?.font = UIFont(name: "HelveticaNeue", size: 8)
myCell?.detailTextLabel?.textColor = UIColor(white: 1, alpha: 0.3)
return myCell!
}
如何强制detailtextlabel
坐在titlelabel
下方?
答案 0 :(得分:0)
首先,以下IF
中的第一个赋值是无用的,因为它会被下一个赋值覆盖。
if myCell == nil {
myCell = UITableViewCell(style: .value1, reuseIdentifier: nil)
myCell = UITableViewCell(style: .value2, reuseIdentifier: nil)
}
顺便说一下,您需要使用.subtitle
样式,而不是.value2
。
所以替换这个
if myCell == nil {
myCell = UITableViewCell(style: .value1, reuseIdentifier: nil)
myCell = UITableViewCell(style: .value2, reuseIdentifier: nil)
}
用这个
if myCell == nil {
myCell = UITableViewCell(style: .subtitle, reuseIdentifier: nil)
}
更好的是,你可以将myCell设为非可选值
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var myCell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier")
?? UITableViewCell(style: .subtitle, reuseIdentifier: nil)
let item: Parsexml = feedItems[indexPath.row] as! Parsexml
myCell.textLabel!.text = item.name! + " | " + item.address!
myCell.detailTextLabel?.text = "Category:" + item.city!
myCell.textLabel?.textColor = UIColor(white: 1, alpha: 1)
myCell.textLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
myCell.detailTextLabel?.font = UIFont(name: "HelveticaNeue", size: 8)
myCell.detailTextLabel?.textColor = UIColor(white: 1, alpha: 0.3)
return myCell
}