gpt4 book ai didi

ios - 以编程方式添加 UITableView 在单元格左侧留下大空间

转载 作者:可可西里 更新时间:2023-11-01 00:59:19 24 4
gpt4 key购买 nike

所以我以编程方式将 UITableView 添加到 UIViewController 并且我得到以下结果:

enter image description here

我在 viewDidLoad 中制作表格,如下所示:

    let size = view.bounds.size
table = UITableView(frame: CGRectMake(0, 65, size.width, size.height-65), style: .Plain)
table.delegate = self
table.dataSource = self
table.separatorInset = UIEdgeInsetsZero
table.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")

这就是我设置单元格的方式:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "cell")
cell.selectionStyle = .None
cell.imageView?.image = blueCheck
cell.textLabel?.text = "TEXT"
cell.separatorInset = UIEdgeInsetsZero
return cell
}

我也尝试过这样做,这是对类似问题的建议答案。

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.separatorInset = UIEdgeInsetsZero
cell.layoutMargins = UIEdgeInsetsZero
}

我也尝试过不使用可重复使用的 cells 和设置 cell 框架,但没有任何效果。

欢迎任何帮助或想法。谢谢!

编辑:

设置 table.separatorInset = UIEdgeInsetsZero 是导致空 cells 像上面所示的 SS 一样向左移动的原因。当它被移除时,空的 cells 也有很大的空间。

我还尝试以编程方式使用约束以查看是否有任何不同。可悲的是,我得到了同样的结果。这是我尝试过的:

    let bottomConstraint = NSLayoutConstraint(item: table, attribute: NSLayoutAttribute.BottomMargin, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.BottomMargin, multiplier: 1, constant: 0)
let topConstraint = NSLayoutConstraint(item: table, attribute: NSLayoutAttribute.TopMargin, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.TopMargin, multiplier: 1, constant: 65)
let leftConstraint = NSLayoutConstraint(item: table, attribute: NSLayoutAttribute.LeadingMargin, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.LeadingMargin, multiplier: 1, constant: 0)
let rightConstraint = NSLayoutConstraint(item: table, attribute: NSLayoutAttribute.TrailingMargin, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.TrailingMargin, multiplier: 1, constant: 0)

最佳答案

所以问题出在 iOS 9 上,有时您还需要设置cellLayoutMarginsFollowReadableWidth = false 以自定义插图和边距。我在使用 Storyboard + 约束时没有遇到过这个问题,所以我不确定这是否只是在以编程方式制作所有内容时出现的问题。

这是我添加的代码以使其工作:

override func viewWillAppear(animated: Bool) {
if #available(iOS 9.0, *) {
table.cellLayoutMarginsFollowReadableWidth = false
} else {
// Fallback on earlier versions
}
}

override func viewDidLayoutSubviews() {
table.separatorInset = UIEdgeInsetsZero
table.layoutMargins = UIEdgeInsetsZero
}

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.separatorInset = UIEdgeInsetsZero
cell.preservesSuperviewLayoutMargins = false
cell.layoutMargins = UIEdgeInsetsZero
}

关于ios - 以编程方式添加 UITableView 在单元格左侧留下大空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37667257/

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