1

我有一个表格视图,在其中一行中,我有一个自定义单元格,它有一个带有水平滚动的集合视图。在集合视图单元格中,我有为其添加圆角的图像。

img_Photo.backgroundColor = UIColor.colorFromCode(0xf2f2f2)
img_Photo.layer.cornerRadius = img_Photo.frame.height / 2
img_Photo.layer.masksToBounds = true

圆角半径首先显示如下,然后滚动它看起来很合适。我缺少什么来正确设置它。

我在 tableviewcell 中添加了 layoutIfNeeded

override func layoutIfNeeded() {
    super.layoutIfNeeded()
    collectView.frame = self.contentView.bounds
}

在第一次加载

滚动后

4

3 回答 3

1

在集合视图单元格类中覆盖 layoutSubviews() 并在其中设置角半径。

于 2019-09-16T11:35:04.730 回答
0

在 cellForItemAtIndexPath 方法中返回您的单元格之前,只需在返回您的单元格之前添加 cell.layoutIfNeeded() 。

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath)


    cell.layoutIfNeeded()// this is to be added in your code
    return cell
}
于 2019-09-16T13:35:14.293 回答
0

创建一个这样的类并在您的 xib 布局中使用它:

import UIKit

class RoundedView: UIView {

    override func layoutSubviews() {
        super.layoutSubviews()

        layer.cornerRadius = frame.height / 2
    }
}
于 2019-09-16T11:31:39.773 回答