uitableviewcell 内的集合视图单元格中的图像不带圆角
Image in collection view cell inside of uitableviewcell does not take rounded corners
我有一个表格视图,在其中一行中,我有一个自定义单元格,它有一个带水平滚动的集合视图。在集合视图单元格中,我有我添加了圆角的图像。
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
}
像这样创建一个 class 并在您的 xib 布局中使用它:
import UIKit
class RoundedView: UIView {
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = frame.height / 2
}
}
在您的集合视图单元格中覆盖 layoutSubviews() class 并在其中设置圆角半径。
在 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
}
我有一个表格视图,在其中一行中,我有一个自定义单元格,它有一个带水平滚动的集合视图。在集合视图单元格中,我有我添加了圆角的图像。
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
}
像这样创建一个 class 并在您的 xib 布局中使用它:
import UIKit
class RoundedView: UIView {
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = frame.height / 2
}
}
在您的集合视图单元格中覆盖 layoutSubviews() class 并在其中设置圆角半径。
在 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
}