gpt4 book ai didi

ios - Swift UITableViewCell subview 布局更新延迟

转载 作者:行者123 更新时间:2023-11-28 06:35:02 25 4
gpt4 key购买 nike

我有一个 UITableViewCell 的子类和一个 UITableViewController 的子类。我正在用我的自定义单元格填充表格 View 。

我在 Storyboard中创建了一个 UITableViewCell,将它的类设为我的自定义 UITableViewCell Swift 文件,并为其指定了一个标识符。然后我在 Controller 中创建单元格:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("myIdentifier", forIndexPath: indexPath indexPath)
return cell
}

在我的自定义单元格中(在 Storyboard上)我有一个具有以下约束的 UIImageView:

Image View Constraints

顶部空间约束的常量是 0,我认为这意味着 ImageView 顶部将与单元格顶部齐平。

但是,我单元格中的图像被向下推了一点:

UITableView with custom cell

白色只是表格部分标题,效果很好。但是,您可以看到图像上方出现橙色间隙(橙色是单元格的背景色),我不希望出现在此处。

我尝试在自定义单元格的 awakeFromNib 中设置图像框架:

@IBOutlet weak var img: UIImageView!
override func awakeFromNib() {
img.frame = CGRectMake(0, 0, img.frame.width, img.frame.height)
}

但这没有效果,所以我尝试在 layoutSubviews 中设置框架:

override func layoutSubviews() {
img.frame = CGRectMake(0, 0, img.frame.width, img.frame.height)
}

这有效,但只有在 TableView 上向下滚动并返回后才有效。前两个单元格有橙色间隙,但如果您滚动到第三个单元格并返回,则间隙消失了。

有人知道为什么会这样吗?如何让 imageview 立即定位到 (0, 0) 而不是仅在向下滚动并返回后才定位?

最佳答案

当我尝试重现您的情况并拖动 imageView 使其与单元格的顶部对齐时,Xcode 建议的约束是 -8,它可以正常工作,但如果我将其设置为 0 我得到的背景颜色和你的问题一样,尝试将顶部约束设置为 -8 或 Xcode 建议的任何内容。

我对AutoLayout不是很熟悉,所以我无法弄清楚为什么Xcode要将它设置为-8

关于ios - Swift UITableViewCell subview 布局更新延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39318582/

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