我需要制作椭圆形的UICollectionView单元格,其中高度是固定的,但宽度是动态的,它也有一个限制,如果文本长于那个,那么文本应该滚动。任何可用于此的第三方选项或需要使用UICollectionView创建自己的选项。请指导。
以下是我想要实现的图像。我想在开始之前知道我应该寻找第三方还是使用UICollectionView来制作自己的。我有很短的时间来完成这就是为什么要避免有时间去寻找自己的方向。请指导。请指导。
答案 0 :(得分:4)
您可以使用UICollectionViewFlowLayout和Auto Layout来实现此目的。
/* PIPE - backup zip */
var zip = fs.createReadStream(process.env.PWD+'/'+req.params.zip).pipe(res);
要记住的重要一点是,您的单元格需要有足够的约束,以便自动布局引擎可以根据内容计算实际高度和宽度。
编辑:如果您想要一个固定的高度,请确保您的标签只能有一行。或者添加一个高度约束。
答案 1 :(得分:2)
最后,我找到了一个库TagListView,它可以通过cocoapods安装,并且还有很多自定义和快速4支持。
答案 2 :(得分:0)
func collectionView(_ collectionView:UICollectionView,布局collectionViewLayout:UICollectionViewLayout,sizeForItemAt indexPath:IndexPath)-> CGSize {
let nw = intersts[indexPath.row]
let options = NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin)
let size = CGSize(width: 250, height: 1500)
let estimatedFrame = NSString(string: nw).boundingRect(with: size, options: options, attributes: [NSAttributedStringKey.font : UIFont.systemFont(ofSize: 17)], context: nil)
let attributes = [NSAttributedStringKey.font : UIFont.systemFont(ofSize: 17)]
let yourLabelSize: CGSize = nw.size(withAttributes:attributes )
var width1 = yourLabelSize.width + 30
if width1 < 30 {
width1 = 30
}
return CGSize(width: estimatedFrame.width+20, height: estimatedFrame.height+20)
}