问题标签 [uicollectionview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
412 浏览

xcode - uicollectionviewcell 没有被选中

我的应用基于导航控制器,其中包含嵌入两个视图控制器的自定义视图控制器。第一个是 UICollectionViewController,我通过 IB 为其设计了单元。单元格包含一个图像视图和一个标签。在执行时,应用程序会正确显示所有单元格及其图像和相关标签,但只有其中一些会在您触摸它们时触发 DidSelect 事件。我试图改变屏幕上的单元格位置,改变 IB 中的间隔设置,这样以前“不敏感”的一些单元格现在变得敏感了,反之亦然。我还检查了图像和标签都是用户交互的。

有什么建议么?非常感谢

0 投票
1 回答
927 浏览

ios - 使用 UICollectionViewFlowLayout 的子类显示 uicollectinviewcellls

我试图通过子类化 UICollectionViewFlowLayout 在定义的点(存储在核心数据中)显示单元格。当我添加一个对象并且我已经在查看集合视图时,此代码会在定义的点显示单元格,但是当加载或刷新集合视图时对象不会出现。我已经通过自定义 UICollectionViewFlowLayout 连接到 self.collectionView.collectionViewLayout 但是当我将包含它的坐标的对象传递给它时,我唯一一次引用它是在 cellforitematindexpath 中。我错过了什么?

0 投票
3 回答
7475 浏览

ios - 通过 NSNotification 从 UICollectionView 中删除单元格

为了简单起见,我有一个简单的基于 UICollectionView 的应用程序 - 一个 UICollectionView 和一个基于 NSMutableArray 的数据模型。

我可以通过 didSelectItemAtIndexPath: 委托方法毫无问题地删除单元格:

但是,我正在尝试通过 aUIMenuControllerUICollectionViewCell子类中添加一个删除选项,该选项是通过 a 触发的UILongPressGestureRecognizer,一切正常,我成功触发了NSNotification

我在 ViewController 中捕获它并调用以下方法:

它在 deleteItemsAtIndexPaths 上崩溃:调用

我已经检查了所有明显的东西——比如来自 NSNotification 的对象和从 indexPathForCell: 调用创建的 indexPath ,这一切看起来都很好。似乎我在两个地方都使用相同的信息调用 deleteItemsAtIndexPath:,但是由于某种原因,它在通过通知路由时失败了。

这是错误中给出的地址的信息:

也许更新为空后的索引路径很重要......

有任何想法吗?

0 投票
4 回答
86190 浏览

ios - 如何设置 UICollectionViewDelegateFlowLayout?

UIViewController 维护对 UICollectionView 的引用。控制器应使用 UICollectionViewDelegateFlowLayout 修改内置流布局。

将视图的数据源设置为 self 非常容易:

我的视图控制器.m

但是如何将控制器设置为视图的委托流布局?

我试过了:

但我得到错误:“不兼容的指针类型分配......”。

集合头文件如下所示:

MyViewController.h

0 投票
12 回答
45393 浏览

ios - UICollectionView flowLayout 没有正确包装单元格

我有UICollectionView一个 FLoLayout。它在大多数情况下都会像我预期的那样工作,但时不时地有一个单元格不能正确包裹。例如,应该在第三行的第一个“列”中的单元格如果实际上在第二行的尾随,并且它应该是一个空白区域(见下图)。你可以看到这个胭脂牢房的左侧(其余部分被切断),它应该是空的。

这不会始终如一地发生;它并不总是同一行。一旦它发生,我可以向上滚动然后返回,单元格将自行修复。或者,当我按下单元格(通过推送将我带到下一个视图)然后弹回时,我会看到单元格处于不正确的位置,然后它会跳转到正确的位置。

滚动速度似乎更容易重现问题。当我慢慢滚动时,我仍然可以看到单元格在错误的位置,但它会立即跳转到正确的位置。

当我添加部分插图时,问题就开始了。以前,我的单元格几乎与集合边界齐平(很少或没有插图),但我没有注意到问题。但这意味着集合视图的右侧和左侧是空的。即,无法滚动。此外,滚动条没有向右齐平。

我可以在模拟器和 iPad 3 上解决这个问题。

我猜这个问题是由于左右部分的插图而发生的......但是如果值是错误的,那么我希望行为是一致的。我想知道这是否可能是Apple的错误?或者这可能是由于插入或类似的东西的积累。

问题和设置说明


跟进:我已经使用尼克的这个答案超过 2 年了,现在没有问题(如果人们想知道这个答案是否有任何漏洞 - 我还没有发现任何问题)。干得好尼克。

0 投票
2 回答
3421 浏览

ios - UICollectionView - 复制 Photos.app 功能

我正在尝试创建一个 UICollectionView,其行为类似于 iPad 上的 photos.app(捏合以进行分组和展开)。

你觉得 photos.app 是如何构建的?

  • 它是一个具有一种布局的 UICollectionView,而捏只是进行批量更新并将单元格移动到部分中?
  • 还是一个 UICollectionView 有两种不同的布局?
  • 或者最后一个选项,可以是两个 UICollectionViews 吗?

你认为最好的方法是什么?

谢谢

0 投票
1 回答
875 浏览

ios6 - 替换默认的 UICollectionViewCell 删除动画

我有一个集合视图,其布局由 UICollectionViewFlowLayout 实例管理。我有一个长按手势识别器附加到集合视图,其工作是检测是否在集合视图中的一个单元格的范围内发生长按,如果是,则在动画更改单元格的变换后删除该单元格。

这是手势识别器执行的操作的相关部分:

问题是删除方法似乎在单元格上执行自己的属性更改/动画,这与我的动画效果不佳。例如,在我试图在这里实现的效果中,一旦单元格完全垂直压扁,我希望它不会再次显示在视图中,但是 deleteItemsAtIndexPaths: 调用会导致单元格的“幽灵”出现然后随着方法执行自己的变换和不透明动画而淡出。

我完全错误地接近它吗?可能集合视图架构提供了一种更好的方法来做我想做的事,而不是像我尝试的那样明确地为单元格设置动画然后删除它?

我希望我能在这里得到一个快速的答案,而不是深入研究文档。

0 投票
1 回答
1415 浏览

ios5 - Interface Builder 文件中的未知类 [A Collection View Controller]

我希望在我的 iOS 5.1.1 iPad 第 1 代上运行 iOS 6 程序,所有的UICollectionViews 都消失了,调试控制台说

是因为与UICollectionViewiOS 5中的s不兼容吗?

0 投票
0 回答
224 浏览

ios6 - 奇怪的 UICollectionView 方向转换

我正在使用集合视图在 iPad 应用程序中显示照片。细胞是 的子类UICollectionViewCell。单元格使用自动布局,四面都有固定的空间。

现在,当方向改变时,细胞起初变得非常小。然后它调整到适当的大小。但是应该可以保持一样的大小,这样真的很难看。

对这个问题有什么想法吗?

0 投票
1 回答
1496 浏览

objective-c - UIImagePickerController 和 CollectionView 控制器/单元

我有一个 CollectionViewController 和一个 CollectionViewCell。我正在从数据库中获取数据,因此在加载控制器时,它会动态创建相应的单元格。

每个单元格都有一个 UIButton 和 UITextView。我正在使用 UIButton 来显示图片(如果它存在于数据库中)或捕获图像(如果按下)。

到目前为止,一切都很好。我启动我的应用程序。集合视图控制器根据数据库的结果用单元格填充自己。

如果图像字段有图像,则在我的自定义 imageButton 的图像属性中加载“check.png”。

如果图像字段没有图像,则将 imageButton 的 TouchUpInside 操作设置为方法“useCamera”。

现在,根据我正在遵循的教程,我必须实现以下代码:

在我发现的大多数示例中,ImageView 和 ImagePickerController 是在同一个 ViewController 中创建的。因此很容易访问 ImageView 的图像属性(或我的情况下的按钮)。

我的问题是我的“IBOutlet UIButton imageButton”位于 InboundCollectionViewCell 内,而不是 InboundCollectionViewController。因此,我找不到将相机返回的图像传递给按钮的图像属性的方法。

请注意,我对 Objective C 和 Xcode 都很陌生,这是我的第一个项目.. 所以要温柔!:P :)

先感谢您!