gpt4 book ai didi

ios - Xcode:AccessoryType.checkmark 将其他 View 推到左侧

转载 作者:行者123 更新时间:2023-11-29 05:50:15 24 4
gpt4 key购买 nike

Xcode 10、Swift 5、iOS 12

我的应用包含 3 个 ViewController:

  1. 登录
  2. 表格 View
  3. TableView中单行数据的详细信息

如果您在 ViewController 3 中编辑并保存数据并使用“后退”按钮(通过 NavigationController)返回到 ViewController 2,则会在 TableView 中的相应行中添加一个复选标记.

问题是这个复选标记将其他所有内容推到左侧,即使我为其留了一些空间:

enter image description here

设置:

  • 水平 StackView,有 2 个 subview ,每个 subview 有 1 个标签
  • StackView 设置为“填充”
  • 第二个 subview 的宽度是第一个 subview 的一半
  • 左侧领先 10 分,右侧落后 40 分(也已测试过 100 分,但没有变化)

当我创建它们时,我已经尝试向每一行添加 AccessoryType.none (如建议的 here ) - 像这样:

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! TableViewCell
cell.setLabels("Label1","Label2")
tableView.cellForRow(at: indexPath)?.accessoryType = UITableViewCell.AccessoryType.none
//cell.accessoryType = UITableViewCell.AccessoryType.none //This doesn't work either

return cell
}

但它没有被添加(与其他类型相同)。

我该如何解决这个问题?是否可以在仍然使用 AccessoryType 的同时将复选标记设置在其他所有内容“后面”?

最佳答案

在您创建的用于处理单元格的 UITableViewCell 中添加以下函数。此函数测试当前单元格是否设置了accessoryType,如果没有,则它会使单元格变小40pts,从而使带有和不带有附件的单元格在自动布局中具有相同的大小。

override var frame: CGRect {
get {
return super.frame
}
set (newFrame) {
var frame = newFrame
if self.accessoryType == .none {
frame.size.width -= 40
}
super.frame = frame
}
}

关于ios - Xcode:AccessoryType.checkmark 将其他 View 推到左侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55746309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com