微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 在UICollectionView中,UIImageView应该是圆形视图而不是菱形

我有UICollectionView和UI ImageView(如图所示).

我想把它作为圆形视图.但是,当我运行应用程序时,它显示为菱形(下图).

在(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView中
cellForItemAtIndexPath:(NSIndexPath *)indexPath {
我把它设置为

[cell.photo setimageWithURL:[NSURL URLWithString:url] usingActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

    cell.photo.layer.cornerRadius = cell.photo.bounds.size.width / 2;
    cell.photo.layer.masksToBounds = NO;
    cell.photo.clipsToBounds = YES;

对于设置图像,我使用了libs SDWebImage

而且我确定,cornerRadius值是正确的(它是图像宽度的一半).此外,我没有在故事板属性中进行任何手动更改(位置设置为自动布局).
我错过了什么?

解决方法

你的问题是cellForItemAtIndexPath之后可以重新布局单元格,并且单元格的大小将在它之后改变.

解决方案:
1)把cell.photo.layer.cornerRadius = cell.photo.bounds.size.width / 2;成

- (void)collectionView:(UICollectionView *)collectionView willdisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath

2)为您的UICollectionCell创建自定义类并覆盖layoutSubviews函数

- (void)layoutSubviews {
    [super layoutSubviews];
    self.photo.layer.cornerRadius = self.frame.size.width / 2.0;
}

原文地址:https://www.jb51.cc/iOS/334540.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐