IOS使用 UICollectionViewCell边框多出一条线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS使用 UICollectionViewCell边框多出一条线相关的知识,希望对你有一定的参考价值。
参考技术A 给UICollectionViewCell中加和cell同等大小的view,view的frame写成:CGRect CGRectIntegral(CGRect rect)是根据一个矩形,返回四个参数都是整数的矩形
比如:CGRect rect= CGRectInset(CGRectMake(0, 0, 100, 100), 10, 10);
会创建出的rect为(10,10,80,80),dx,dy也可以为负值,则是创建出来的矩形会大于原矩形范围。
Swift3 - UICollectionViewCel 的 intrinsicContentSize 是 (-1, -1)
【中文标题】Swift3 - UICollectionViewCel 的 intrinsicContentSize 是 (-1, -1)【英文标题】:Swift3 - UICollectionViewCel's intrinsicContentSize is (-1, -1) 【发布时间】:2017-02-15 08:51:33 【问题描述】:当我尝试在函数collectionView(_:didSelectItemAt:)
中获取单元格的intrinsicContentSize
时,结果是(-1, -1)。
我正在使用流布局和单元格子视图的自动布局配置,但没有实现collectionView(_:layout:sizeForItemAt:)
。有人有想法吗?
编辑:
单元格的自动布局具有固定的宽度和高度。我通过设置estimatedItemSize
开启了self-sizing 并将collectionView 配置如下:
self.collectionView.delegate = self
self.collectionView.dataSource = self
if let layout = self.collectionView.collectionViewLayout as?
UICollectionViewFlowLayout
layout.estimatedItemSize = CGSize(width: 100, height: 100)
我尝试将单元格的intrinsicContentSize
输入:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
let cell = collectionView.cellForItem(at: indexPath)
let size = cell?.intrinsicContentSize
这给了我(-1, -1)
size
【问题讨论】:
放更多你已经实现的代码 查看答案***.com/questions/24127032/… 【参考方案1】:UICollectionViewCell 没有intrinsicContentSize
。你为什么希望它有一个?
如果您想知道此时单元格的大小,只需询问其bounds.size
。
如果您想知道如果单元格通过其子视图的自动布局约束从内部调整大小时单元格的大小,请致电systemLayoutSizeFitting(_:)
。
【讨论】:
是的,在那之后我意识到了这一点。实际上我想实现一个可扩展和可折叠的单元格,其中包含点击时的标签,只是认为intrinsicContentSize
可以显示适合所有标签的大小并显示全部内容
听起来你想要的是systemLayoutSizeFitting(_:)
。将其添加到我的答案中。
刚刚知道你是《iOS 10 编程》这本书的作者,我正在研究它~很高兴见到你哈哈@matt
很好,但我似乎无法帮助您解决 this 问题:(
是的,您帮助我意识到intrinsicContentSize
是为UILabel
之类的视图设计的,并为我提供了有用的方法systemLayoutSizeFitting(_:)
。我意识到我需要阅读更多关于 Apple 编程指南的内容。在之前我觉得他们有点冗长哈哈以上是关于IOS使用 UICollectionViewCell边框多出一条线的主要内容,如果未能解决你的问题,请参考以下文章
ios开发之-- tableview/collectionview获取当前点击的cell
如何以编程方式创建 UICollectionViewCell
Xcode 6 beta 4,UIButton 在collectionviewcell 中不负责
如何从 UICollectionViewCell 访问 UICollectionView 中 Cell 的 indexPath