我正在计算表视图内部的堆栈视图的尾随约束。似乎计算没有给出确切的值。请参考下面的截图。我的计算/逻辑不正确吗?如何解决这个问题,以便我能获得确切的价值?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "tableCellID", for: indexPath) as? TableViewCell else {
fatalError("Can't find cell")
}
let profile = array[indexPath.row]
if profile.isDisabled1 || profile.isDisabled2 || profile.isDisabled3 {
let totalHiddenViews: Int = (profile.isDisabled1 ? 1 : 0) + (profile.isDisabled2 ? 1 : 0) + (profile.isDisabled3 ? 1 : 0)
let singleViewWidth = (UIScreen.main.bounds.size.width - 32)/3 // 32 is sum of leading and trailing constraints
cell.stackViewTrailing.constant = CGFloat(totalHiddenViews) * (singleViewWidth + 8)
} else {
cell.stackViewTrailing.constant = 8
}
cell.view1.isHidden = profile.isDisabled1
cell.view2.isHidden = profile.isDisabled2
cell.view3.isHidden = profile.isDisabled3
return cell
}
答案 0 :(得分:1)
您还遇到2-cell layout问题。我的直觉是您的幻数之一是错误的,而我在这里看到的直接取决于可见单元格数的是此行。
cell.stackViewTrailing.constant = CGFloat(totalHiddenViews) * (singleViewWidth + 8)
我将从检查该常量的完整性开始,然后从那里开始,从取决于可见单元格数量的代码开始。