问题标签 [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.
ios - UICollectionView 不调用委托方法
我UICollectionView
在情节提要中设置了一个并连接了数据源和委托出口。我已经通过 nib 注册了一个单元格,我在该cellForItemAtIndexPath:
方法中将其出列。
所有作品都完美地期望永远不会调用委托方法。例如:当触摸一个单元格时,我希望didSelectItemAtIndexPath:
被调用。
我已经仔细检查了集合视图的委托 - 它已正确分配。
有人知道不调用这些方法的原因吗?
ios - UICollection View - Segue - 确实选择了特定的单元格,LOG
我开始使用 UICollectionview 来加载定制的相册,相册加载得很好,数据来自我的服务器(SQL-JSON-NSARRAY-NSDictionary)并且被填充到单元格中就好了,但是现在我当用户选择该单元格以加载具有该图像的全尺寸新 UIVIewController 时会喜欢它(以便他们可以查看/打印/共享等)
但是,我陷入了“准备继续”方法中,因为我无法从该特定单元格中提取任何信息
作为现在的测试,我只想让 NSLOG 说“用户选择了专辑标题 %@”
到目前为止,这是我的代码,任何帮助将不胜感激......
这样你就可以看到我的来自服务器的 JSON 数据进来了,这里是
objective-c - 设置部分插图时,带有 FlowLayout 的 UICollectionView 不滚动
我正在以编程方式使用 UICollectionView。
我将其框架设置如下:
我UICollectionViewFlowLayout
的部分插图设置为:
我也只有1节。
我已将高度设置为 3,000 以查看集合视图是否会滚动,但不会滚动。我将其设置为,因为当我插入新项目时集合视图似乎没有向上或向下滚动。
UICollectionView
是从 a 子类化的UIScrollView
,这意味着我可以继续重置滚动视图内容大小。这会正常工作吗?
唯一的问题是,如果我知道所有项目的大小,包括每行有多少项目,这将起作用。
如果每个项目的大小不同,我将如何找出每一行的大小?我需要它来添加所有行大小并增加self.collectionView
.
编辑
即使我上面的建议,重置内容大小,也不能正常工作!更新我的收藏视图时,我尝试了以下操作:
不过,这很丑陋。这是因为它假设我所有的图像的大小都是 200x200px,每行适合 3 个图像(因此除以 3)。
此外,即使我有 +300,最后一行我也只能看到大约 3/4,而不是全部。我必须滚动更多,我才能看到它,但它又回到了 3/4。它有点像滚动刷新,只有当你拖动它时视图才会移动,当你离开它时,它会撞回原来的位置。为什么会这样?只是苹果设计UICollectionView
的这么差吗?这有点荒谬...... UITableViews 根据他们的内容自动调整他们的滚动。
xcode - UICollectionViewCell 将被显示/被显示?
很简单的问题。
是否有通知或委托类型的方法来判断何时显示 UICollectionViewCell 对象?
iphone - UICollectionView:如何在页脚和页眉之间添加空间?
我有一个使用标准 FlowLayout 类的 CollectionView,每个部分都有水平滚动和页眉和页脚。
现在页脚和页眉视图之间(即部分之间)的像素为零。我想在它们之间添加一点间距,但不要在第一部分上方或在最后一部分之后。所以我不能只在页眉和页脚视图本身中添加该空间。
我本来期望像“interSectionSpacing”这样的东西,但显然没有这样的设置。有任何想法吗?
ios - 以编程方式创建的 UICollectionView 不会滚动
我正在使用UICollectionView
. 这很简单:AUIView
以UICollectionView
编程方式创建,UICollectionViewFlowLayout
与一个部分一起使用,滚动设置为水平。它出现在屏幕上,并在正确的单元格中包含正确的数据。但它不滚动——事实上它根本不响应用户交互。
这是视图的初始化程序:
我尝试以编程方式设置UserInteractionEnabled
为YES
,但这没有任何区别(也不应该有,因为默认UserInteractionEnabled
设置为YES
)。FWIW,集合视图使用标准UICollectionViewCell
的UILabel
s 添加到他们contentView
的 s 作为子视图。
关于为什么这不是滚动的任何想法?非常感谢任何和所有帮助。
objective-c - UICollectionView 标头未显示
我正在做一个项目,该项目使用一个UICollectionView
来显示几张专辑。这些项目显示得很好,但现在我想在第一部分上方显示一个标题。
为此,我在registerNib:forSupplementaryViewOfKind:withReuseIdentifier:
我的 init 方法中添加了 。像这样:
(AlbumHeader
Nib 包含类的视图AlbumHeader
,它是 的子类UICollectionView
。)
之后,我实现了collectionView:viewForSupplementaryElementOfKind:atIndexPath
方法:
现在它应该尝试加载标题视图,我想。但事实并非如此,补充视图的方法不会被调用。
我错过了什么?卡住了几个小时,已经多次阅读UICollectionView
s 上的文档,但似乎没有任何帮助。有什么想法吗?
scroll - UICollectionView 有效拖拽
我目前正在尝试使用 UICollectionView 实现 UITableView 重新排序行为。
让我们调用一个UItableView TV和一个UICollectionView CV(澄清以下解释)
我基本上是在尝试重现电视的拖放,但我没有使用编辑模式,只要触发长按手势,单元格就可以移动。它工作得很好,我正在使用 CV 的移动方法,一切都很好。
我更新了 CV 的 contentOffset 属性以在用户拖动单元格时处理滚动。当用户转到顶部和底部的特定矩形时,我会更新 contentOffset 和 CV 滚动。问题是当用户停止移动手指时,手势不会发送任何更新,这会使滚动停止并在用户移动手指后立即重新开始。
这种行为绝对不自然,我宁愿继续滚动,直到用户释放 CV,就像电视中的情况一样。电视拖放体验很棒,我真的很想重现同样的感觉。有谁知道他们在重新排序期间如何管理电视中的滚动?
- 我尝试使用计时器重复触发滚动动作,只要手势位置在正确的位置,滚动很糟糕而且效率不高(非常缓慢和跳跃)。
- 我还尝试使用 GCD 在另一个线程中收听手势位置,但结果更糟。
我对此一无所知,所以如果有人有答案,我会嫁给他!
下面是 longPress 方法的实现:
为了使 CV 滚动,我正在使用该方法:
objective-c - UICollectionView 在包含标题时不会重新加载项目
编辑:最初的问题是错误的,所以有些内容可能有点不相关。但可能会让你对我做事的方式有更好的印象。
我有一个非常奇怪的问题NSFetchedResultsController
。首先,我将描述我的应用程序的当前情况。我有多个Album
和Photo
实体,它们都是抽象类的子类AbstractItem
。
在我AlbumViewController
的中,我使用 to aNSFetchedResultsController
来获取所有AbstractItem
当前的superAlbum
. 像这样:
当我选择 时Album
,会启动另一个实例AlbumViewController
并将其推送到我的导航控制器上。在这种情况下parentAlbum
,设置为选定的对象。
现在,当我Album
使用以下代码添加新内容时,会发生错误。
使用对象controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
的类型调用该方法。那个在 current 中不存在。因此,当它尝试在集合视图中更新它时会失败。NSFetchedResultsChangeUpdate
parentAlbum
NSFetchedResultsController
不在当前中的对象怎么可能NSFetchedResultsController
用于通知?我该如何解决这个问题?
编辑:
发布问题后,我意识到这实际上不是NSFetchedResultsController
关于错误对象的通知。但它会通知上一个(父)集合视图中的对象,但它会对它自己的集合视图控制器执行此操作。
但这可能只是问题所在;集合视图控制器在不可见时收到通知,看起来它目前无法处理。我这样处理通知:
我很确定它以前工作得很好。在迭代自上次提交以来所做的更改后,我让它再次工作。在我删除UICollectionView
标题(补充视图)后它再次起作用。
所以:UICollectionView
当项目有标题并且当前不可见时,我无法更新项目。这是一个很难发现的问题,但是如何解决呢?认为这是一个非常奇怪的问题。
我得到的错误:
objective-c - UIImageView 在 UICollectionViewCell 子类中显示超出范围的图像
我必须创建一个自定义 UICollectionViewCell 来显示图像和图像名称,并且在图像顶部,有一个帧图像,其宽度和高度比图像大 2 个像素。但是,无论我做什么,图像似乎都比框架图像大。我对表格视图做了同样的事情,而且效果很好。
这是代码:
UICollectionViewCell 的大小为 67 x 100,因此在代码中,bgImage 应始终为 67 x 67,其原点为 (0,0),而 contentImage 的帧应为 (0,0,63 ,63)。通过调试,它似乎是正确的。但是,conentimage 总是比 bgImage 大。图像的原始尺寸为 80 x 80。我在 cell.ContentView 或 imageView 上尝试了 setClipToBounds、setContentViewMode,但没有一个有效。
附上有关该问题的屏幕截图。
任何帮助表示赞赏。