Tag: uicollectionview

UICollectionVIew:我如何删除顶部第一个单元格的行上的空间

我在Interface Builder中有这样的安排,所有的属性都设置为零。 但是,当我在设备和模拟器上运行它时,它就像这样 细胞上方的空间来自哪里? 所以我尝试在这样的代码中设置UICollectionViewFlowLayout的这些属性 UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; layout.headerReferenceSize = CGSizeZero; layout.footerReferenceSize = CGSizeZero; layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); layout.minimumInteritemSpacing = 0; layout.minimumLineSpacing = 0; layout.itemSize = CGSizeMake(103, 119); self.calendarView.collectionViewLayout = layout; 但我没有运气。 我怎样才能摆脱这个空间? 谢谢。

如何检测UICollectionView中单元格的双击

我想要对UICollectionView中的单元格进行双击,并有一个双击动作取消单元格select。 这是我试过的: UITapGestureRecognizer *tapRecogniser = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; tapRecogniser.numberOfTapsRequired = 2; for (UITapGestureRecognizer *recogniser in [self.collectionView gestureRecognizers]) { [recogniser requireGestureRecognizerToFail:tapRecogniser]; } [self.collectionView addGestureRecognizer:tapRecogniser]; 也就是说,如果我的双击手势识别器成功,我试图让默认的手势识别器失败。 这似乎不工作,因为我的集合视图委托的collectionView:didSelectItemAtIndexPath:仍然被调用后,双击 请注意Apple的UICollectionViewController文档 苹果公司的文档在这一点上是误导性的,声称默认的手势识别器是UITapGestureRecognizer子类的一个实例,所以它可以很容易地用[recogniser isKindOfClass:[UITapGestureRecognizer class]]来挑选出来。 不幸的是,这是一个错误。

如何从UICollectionView转换到Pinterest / Evernote等UIViewController

我有一个UICollectionView,当一个项目被选中,我想它animation全屏幕。 所以它会从单元格的大小过渡到全屏,并成为一个UIViewController。 Pinterest和Evernote都有这种行为,在单元格上单击将单元格转换为全屏视图控制器。 有没有这样做的例子? 我已经search了几个项目,但没有find任何说明将单元格转换为全屏视图控制器。 Pinterest在这里讨论它: http : //engineering.pinterest.com/post/67769846580/behind-the-pins-building-pinterest-3-0-for-ios

将缩放缩放添加到UICollectionView

介绍 我将描述我想实现的效果,然后详细说明我目前正在如何实现这一点,以及它现在的行为有什么问题。 我还会提到另外一个我看过的方法,但根本无法工作。 最相关的代码是在问题的底部内联以便快速访问。 您可以下载源代码的压缩文件或将项目作为BitBucket上的Mercurial Repository进行获取。 该项目现在包含下面答案的修复。 如果您想要最初提供的破损版本,则会标记为“初始错误版本” 该项目是一个概念/秒杀的最低限度的certificate,以评估效果是否可行,所以它是相当轻和简单! 期望的效果 该应用程序将显示形成垂直表的大量离散信息行。 该表格将被用户垂直滚动。 这是UITableView标准行为,也可以使用UICollectionView 。 但是,应用程序还必须支持捏缩放。 当你在桌子上缩放变焦时, 所有的线条都应该挤压在一起。 当你拉伸, 所有的线应该分开。 在我的概念certificate中,单个细胞没有resize,只是将它们重新放置在一起或者进一步分开。 这是故意的:我不相信validation这个想法的可行性是至关重要的。 这里的屏幕截图显示了当前App如何缩小和放大: 目前的实施 我正在使用UICollectionView与自定义UICollectionViewLayout子类。 这个布局将UICollectionViewCells定位在屏幕中间的一个很好的正弦波。 每个UICollectionViewCell只是一个容器,用于存放indexPath行的UILabel 。 UICollectionViewLayout子类有一个参数来设置它描述给UICollectionView每个单元格之间的垂直间距,并且调整这个参数允许表格按需要垂直压扁或拉伸。 我的UICollectionViewController子类有一个UIPinchGestureRecognizer 。 当识别器检测到比例变化时, UICollectionView布局中的垂直单元格间距将UICollectionView更改。 没有进一步考虑,缩放将从内容的顶部发生,而不是在触摸手势的中心。 UICollectionView的contentOffset属性在调整期间进行调整以提供此function。 手势识别器还需要适应夹捏时发生的拖动。 这也是通过更改UICollectionView的contentOffset来处理的。 一些额外的代码允许在手指被添加到手势或从手势移除时触摸手势的中心点改变。 请注意,作为UIScrollView子类的UIPanGestureRecognizer具有自己的UIPanGestureRecognizer ,它与我添加的UIPanGestureRecognizer进行交互。 我不确定这是否导致问题。 我添加了代码来禁用UICollectionView的内置滚动在我的捏手势,但这似乎没有太大的区别。 我试图使用gestureRecognizer:shouldRequireFailureOfGestureRecognizer:使我的UIPinchGestureRecognizer失败的内置UIPanGestureRecognizer ,但这似乎停止了我的掐识别器工作。 我不知道这是我是愚蠢的,还是在iOS中的错误。 如前所述,目前的UICollectionViewCell没有resize。 他们只是重新定位。 这是故意的。 我认为这对于validation这个概念并不重要。 什么工作 工作位工作得很好。 您可以上下拖动表格。 在拖动过程中,您可以添加一个手指并开始捏合,然后释放一个手指并继续拖动,然后添加和捏合等。这一切都非常顺利。 在原始的iPhone 5上,它可以顺利地在屏幕上支持> 200视图的捏和平移。 […]

按单元分页UICollectionView,而不是屏幕

我有UICollectionView水平滚动,并且总是有2个单元并排整个屏幕。 我需要滚动停止在一个单元格的开始。 启用分页后,集合视图会一次滚动整个页面,即2个单元格,然后停止。 我需要启用单个单元格的滚动,或者停止在单元格边缘的多个单元格的滚动。 我试图UICollectionViewFlowLayout并实现方法targetContentOffsetForProposedContentOffset ,但到目前为止,我只能打破我的集合视图,并停止滚动。 有没有更简单的方法来实现这个和如何,或者我真的需要实现UICollectionViewFlowLayout子类的所有方法? 谢谢。

如何在z轴方向上animationUIView?

我正在处理一个集合视图,并希望在用户点击它的同时提起一点点UICollectionViewCell。 我正在改变细胞的颜色,所以它应该脱颖而出,与其他细胞相比,而用户点击它。 如何实现?

在UICollectionViewCell中添加UICollectionView

我正在使用Swift为我工作的医院构build一个iOS应用程序。 不知何故,在一个特定的function,我必须把一个UICollectionView内的UICollectionViewCell。 我想要实现的是父视图的每个内容(垂直滚动)将有几个孩子(这可以滚动水平)依赖于父行。 为了说明,我必须显示医生(姓名和照片)的名单,然后我必须在他们的姓名和照片下方显示他们的每个练习时间表。 练习时间表将取决于每个医生。 所以,我必须把它放在收集视图。 我尝试了几个我在网上find的解决scheme,但到现在为止我还是无法接近它。 我无法解决的最大问题是:我不知道代码中加载子数据源的位置(医生时间表),以及何时加载它,因为我不能在下面有两个func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 这是我想要达到的目标 ui图像和医生姓名(uilabel)在父集合视图单元格中(垂直滚动),然后框中的所有内容(练习日n练习时间)都是子集合视图(水平滚动) PS:有很多医生,每个医生都有几个练习日。 请帮助我如何做到这一点

如何显示每行3个单元的UICollectionView

根据标题,我使用UICollectionView来显示图像。 我需要每行显示3个单元格,就像Instagram做的那样。 因为有很多屏幕尺寸,我得到iPhone屏幕的宽度,然后除以3。但是,它不显示为我所需要的。 这里是我的代码里面的viewDidLoad()方法: private let leftAndRightPaddings: CGFloat = 8.0 private let numberOfItemsPerRow: CGFloat = 3.0 private let heightAdjustment: CGFloat = 30.0 let bounds = UIScreen.mainScreen().bounds let width = (bounds.size.width – leftAndRightPaddings) / numberOfItemsPerRow let layout = userDetailCollection.collectionViewLayout as! UICollectionViewFlowLayout layout.itemSize = CGSizeMake(width, width)

UICollectionView太宽了。 我怎样才能使设备的宽度?

我在故事板中创build了一个新的UICollectionView。 我的问题是,细胞尝试和适合宽度比设备的宽度,所以右边的那个被切断。 什么是解决这个问题的好方法?

UICollectionView cellForItem调用不正确

将Swift 2.2迁移到Swift 3后的Xcode 8.2.1 UICollectionView的cellForItem没有正确调用,但在迁移之前工作正常 我有水平的UICollectionViewFlowLayout CollectionView和设置分页设置为true UIViewController的视图框架与UICollectionView框架一样,也是页面应用程序的单元框架(全尺寸) 我滚动UICollectionView向右滚动cellForItem(UICollectionViewDataSource函数)indexPath.row indexPath.row打印如下 0, 3, 4, 5, 6, 7, 8, 9, 10 然后在上次打印时滚动到相反的方向10 下一个indexPath是7但应该是9因为最后一个被调用的索引是10 并滚动,直到第一个单元格显示 6, 5, 4, 3, 2, 1, 0印 为什么这种情况发生? 在Swift 2.2迁移之前,工作正常 在Swift 3或者iOS 10之后,UICollectionView或者UICollectionViewFlowLayout有没有改变?