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

ios – UICollectionView椭圆形自定义单元格

如何使用自定义单元格在UICollectionView中生成椭圆形单元格.以下是我想要实现的形象.

不知道这个怎么实现这个,经过几个环节,但没有得到.
请指导.
谢谢

更新:我试过的是

func collectionView(collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeforItemAtIndexPath indexPath: NSIndexPath) -> CGSize {


    return CGSize(width: collectionView.frame.size.width/3.0 - 8,height: collectionView.frame.size.width/2.5[![enter image description here][2]][2] )
}

对于这种设计,但它不按需要工作,它变成了

解决方法

TL; DR:(示例可以在这里找到: https://github.com/JakubMazur/SO39160339)

hew,你会遇到这样的3个问题:

>自定义将文本作为单元格长度的UICollectionView单元格
>将collectionView单元格对齐到中间不是左右
子视图中的圆角

所以让我们开始吧

1)

这有点棘手,不是那么简单.你应该做的第一件事是让自动布局为你做点窍门.所以在你的storyboard和xib文件中设计单元格和collectionView,然后在你的控制器类中:

if let flowLayout = self.collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
    flowLayout.estimatedItemSize = CGSizeMake(1,1)
}

正确的方法是例如viewDidLoad func.当然,如果你稍后重写这个布局,

然后,对于要自定义尺寸的标签,您需要设置:

cell.titleLabel.preferredMaxLayoutWidth = 50

在这两个例子中使用的价值并不重要.如果将estimateItemSize设置为低,则基本上要求自定义大小.

2)

为此,您需要覆盖布局类.我强烈推荐使用这个解决方https://stackoverflow.com/a/38254368/1317394从@Alex Koshy回答.

3)

该部分很容易.在自定义单元格的底部添加子视图,并将单元格视图背景颜色设置为透明.并在单元格中添加拐角半径,如下所示:

override func prepareForReuse() {
    self.roundedView.layer.cornerRadius = self.frame.size.height/2

}

这是一个输出效果

这里是与这个例子的仓库的链接

https://github.com/JakubMazur/SO39160339

请享用!

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

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

相关推荐