我正在尝试格式化UIViewController的detailTextLabel属性中数字的位置。 UIViewTable的detailTextLabel部分中的数字距离右侧太近(如图所示)。
我尝试过:
cell.detailTextLabel?.textAlignment = .center
但是它不起作用。我已经尝试了.left
,.right
,.justified
和界面生成器中的各种设置。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "PracticeWord", for: indexPath)
let sortedPracticeWord = sortedPracticeWords[indexPath.row]
print("practiceWord is: \(sortedPracticeWord)")
let split = sortedPracticeWord.components(separatedBy: "::")
cell.textLabel?.text = split[0]
cell.textLabel?.textColor = UIColor.white
cell.selectedBackgroundView = UIView()
cell.selectedBackgroundView!.backgroundColor = UIColor(white: 1, alpha: 0.20)
cell.textLabel?.text = split[1]
cell.detailTextLabel?.text = split[2]
cell.detailTextLabel?.textAlignment = .center
print("cell is: \(cell)")
return cell
}
我希望每个数字都以“错误”一词的“ g”结尾。
答案 0 :(得分:0)
我认为这里发生的是,detailTextLabel的大小已调整为适合文本长度,并且整个标签都对齐到右边缘。
我会尝试在添加到详细信息文本标签的文本中添加空格。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "PracticeWord", for: indexPath)
let sortedPracticeWord = sortedPracticeWords[indexPath.row]
print("practiceWord is: \(sortedPracticeWord)")
let split = sortedPracticeWord.components(separatedBy: "::")
cell.textLabel?.text = split[0]
cell.textLabel?.textColor = UIColor.white
cell.selectedBackgroundView = UIView()
cell.selectedBackgroundView!.backgroundColor = UIColor(white: 1, alpha: 0.20)
cell.textLabel?.text = split[1]
cell.detailTextLabel?.text = split[2] + " "
cell.detailTextLabel?.textAlignment = .center
print("cell is: \(cell)")
return cell
}
答案 1 :(得分:0)
详细信息文本标签仅与内置的UITableViewCell样式一起显示,并且不会遵循对齐方式,因为默认样式会做自己的事情,并且不会给您太多控制。对于简单的东西来说这很好,但很快就会成为任何不重要的事情的限制。
如果要控制放置,则需要使用左右UILabel定义自己的自定义表格单元,并将其严格限制在所需的位置。另外请记住,如果用户更改系统字体大小,您可能仍无法与'g'字符对齐,因此您可能要考虑采用其他设计,或者只是不必担心这种对齐方式。
有关内置样式的说明,请参见https://developer.apple.com/documentation/uikit/uitableviewcell/cellstyle,但是我怀疑如果默认样式不能满足您的要求,则您需要创建自己的样式。
答案 2 :(得分:0)