Questions tagged «uicollectionview»

UICollectionView类管理数据项的有序集合,并使用可自定义的布局来呈现它们。集合视图提供与表视图相同的常规功能,除了集合视图不仅可以支持单列布局,还可以支持更多的功能。集合视图支持可自定义的布局,可用于实现多列网格,平铺布局,圆形布局等。在iOS 6.0和更高版本中可用

30
UICollectionView的cellForItemAtIndexPath没有被调用
只有第二次使用UICollectionView了,也许我咬的东西比我可以咀嚼的要多,但是: 我正在实现一个UICollectionView(myCollectionView),它使用已子类化的自定义UICollectionViewCell。子类化的单元格(FullReceiptCell)包含UITableView,并且是viewcontroller的大小。我试图允许FullReceiptCells之间的水平滚动。 包含myCollectionView的子类UICollectionViewController被推入导航控制器堆栈。当前,myCollectionView区域和水平滚动已启用。但是,看不到任何单元格。我已经确认 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 已运行并返回大于0的整数。我还确认myCollectionView的委托和数据源已在IB中正确设置为子类UICollectionViewController。 加载单元格的方法: - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 没有被调用。 这是我在该控制器内推送UICollectionViewController和viewDidLoad方法的位置(注意:initWithBill是常规初始化程序的替代): 在先前的ViewControllers .m文件中: FullReceiptViewController *test = [[FullReceiptViewController alloc] initWithBill:currentBill]; test.title = @"Review"; [self.navigationController pushViewController:test animated:YES]; 在FullReceiptViewController.m中: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. [self.myCollectionView …

9
UICollectionView自动滚动到IndexPath的单元格
在加载收集视图之前,用户需要在收集视图的数组中设置图像数。屏幕上没有所有的单元格。我有30个单元格,屏幕上只有6个单元格。 问题:如何在加载UICollectionView时自动滚动到具有所需图像的单元格?


6
在不同的设备方向上更改UICollectionViewCell的大小
我使用的是UICollectionView用UICollectionViewFlowLayout。 我通过设置每个单元的大小 collectionView:layout:sizeForItemAtIndexPath: 从纵向切换为横向时,我想调整每个单元的大小以完全适合CollectionView的大小,而又不留单元之间的填充空间。 问题: 1)旋转事件后如何更改单元格的大小? 2)而且,更好的是,如何在单元格始终适合屏幕整个尺寸的情况下进行布局?

19
如何以编程方式设置UICollectionViewCell的宽度和高度
我正在尝试实施一个CollectionView。当我使用“自动布局”时,单元格不会更改大小,而是对齐。 现在我想将其大小更改为 //var size = CGSize(width: self.view.frame.width/10, height: self.view.frame.width/10) 我尝试设置 CellForItemAtIndexPath collectionCell.size = size 虽然没有用。 有没有办法做到这一点? 编辑: 看来,答案只会改变我的CollectionView宽度和高度本身。约束中可能存在冲突吗?有什么想法吗?

18
如何居中对齐UICollectionView的单元格?
我目前正在使用UICollectionView用户界面网格,并且工作正常。但是,我想启用水平滚动。网格每页支持8个项目,当项目总数为4时,这是在启用水平滚动方向的情况下如何排列项目的方式: 0 0 x x 0 0 x x 此处0->收集项目,x->空单元格 有没有办法使它们居中对齐,如: x 0 0 x x 0 0 x 这样内容看起来更干净? 另外,以下安排也可能是我期望的解决方案。 0 0 0 0 x x x x

18
targetContentOffsetForProposedContentOffset:withScrollingVelocity,无需子类化UICollectionViewFlowLayout
我的应用程序中有一个非常简单的collectionView(仅一行方形缩略图)。 我想拦截滚动,以便偏移量始终在左侧保留完整图像。此刻,它滚动到任何地方,都将留下剪切的图像。 无论如何,我知道我需要使用该功能 - (CGPoint)targetContentOffsetForProposedContentOffset:withScrollingVelocity 做到这一点,但我只是使用一个标准UICollectionViewFlowLayout。我不是子类化。 没有子类,有没有办法拦截它UICollectionViewFlowLayout? 谢谢


18
UICollectionView中的单元格左对齐
我在项目中使用UICollectionView,其中一行上有多个宽度不同的单元格。根据:https : //developer.apple.com/library/content/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/UsingtheFlowLayout/UsingtheFlowLayout.html 它以相等的填充将单元格分布到整个行中。发生这种情况是预期的,除了我想左对齐它们,并硬编码填充宽度。 我认为我需要继承UICollectionViewFlowLayout的子类,但是在在线阅读了一些教程等之后,我似乎并不清楚它是如何工作的。

17
UICollectionView reloadData在iOS 7中无法正常运行
我一直在更新自己的应用程序,使其可以在iOS 7上正常运行。我已经在多个应用程序中注意到reloadData,a 的方法UICollectionViewController并不像以前那样起作用。 我将正常加载UICollectionViewController,并填充UICollectionView一些数据。这在第一时间效果很好。但是,如果我请求新数据(填充UICollectionViewDataSource),然后调用reloadData,它将为numberOfItemsInSection和查询数据源numberOfSectionsInCollectionView,但似乎调用cellForItemAtIndexPath的次数不正确。 如果我更改代码以仅重新加载一个部分,则它将正常运行。对我来说,更改这些没有问题,但是我认为我不必这样做。reloadData应该根据文档重新加载所有可见的单元格。 其他人看到了吗?


7
UICollectionView的动态单元格宽度取决于标签宽度
我有一个UICollectionView,它从包含标签的可重用单元格加载单元格。数组为该标签提供内容。我可以使用sizeToFit轻松根据内容宽度调整标签宽度。但是我无法制作适合标签的单元格。 这是代码 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. arrayOfStats = @[@"time:",@"2",@"items:",@"10",@"difficulty:",@"hard",@"category:",@"main"]; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection: (NSInteger)section{ return [arrayOfStats count]; } - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ return CGSizeMake(??????????); } - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{ return 1; } - (UICollectionViewCell …


6
UICollectionView动画数据更改
在我的项目中,我使用UICollectionView显示图标网格。 用户可以通过单击分段控件来更改顺序,该分段控件调用具有不同NSSortDescriptor的核心数据的访存。 数据量始终相同,只是结束于不同的部分/行: - (IBAction)sortSegmentedControlChanged:(id)sender { _fetchedResultsController = nil; _fetchedResultsController = [self newFetchResultsControllerForSort]; NSError *error; if (![self.fetchedResultsController performFetch:&error]) { NSLog(@"Unresolved error %@, %@", error, [error userInfo]); } [self.collectionView reloadData]; } 问题在于reloadData不会使更改生效,UICollectionView只会弹出新数据。 我应该跟踪更改前后一个单元格在哪个indexPath中,并使用[self.collectionView moveItemAtIndexPath:toIndexPath:]来执行更改动画,或者是否有更好的方法? 我对继承collectionViews没有太多的兴趣,所以任何帮助都将是很大的... 谢谢,比尔。

11
UICollectionView flowLayout无法正确包装单元格
我有UICollectionView一个FLowLayout。大部分时间都可以正常工作,但是有时其中一个单元无法正确包装。例如,如果单元格实际上在第二行中尾随,则应该在第三行的第一个“列”中打开的单元格,并且应该有一个空白(请参见下图)。您可以看到的该胭脂细胞只有左侧(其余部分被切除),应该放置的地方是空的。 这并非始终如一;它并不总是同一行。一旦发生,我可以向上滚动然后向后滚动,单元格将自动修复。或者,当我按下该单元格(通过按一下将其带到下一个视图)然后弹出时,我会看到该单元格处于错误的位置,然后它将跳至正确的位置。 滚动速度似乎可以更轻松地重现该问题。缓慢滚动时,仍然可以时不时地看到该单元格处于错误的位置,但是随后它将立即跳到正确的位置。 当我添加节插图时,问题开始了。以前,我的单元格几乎与收集边界齐平(很少或没有插图),而且我没有注意到问题。但这意味着集合视图的左右为空。即,无法滚动。另外,滚动条也不在右边。 我可以使问题同时在Simulator和iPad 3上发生。 我猜是由于左侧和右侧部分的插入而发生了问题。但是如果值错误,那么我希望行为是一致的。我想知道这是否可能是Apple的错误?也许这是由于插图或类似内容的积累。 跟进:我使用Nick的答案已经有两年多了,一直没有问题(如果人们想知道答案是否有漏洞,我还没有发现)。尼克,做得好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.