Tag: uicollectionview

使UICollectionView可缩放?

是否有任何方法使UICollectionView zoomable ,即当你捏,所有的细胞可以放大和缩小。 我可以在UIScrollView通过从delegate方法返回UIScrollView的唯一subview来实现这一点 – (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView 由于UICollectionView是一种UIScrollView ,有没有办法或解决这个问题呢? UICollectionView是否有一个包含所有单元格的直接子视图? 谢谢

UICollectionView与分页 – 设置页面宽度

我有一个集合视图,一次可以显示大约3.5个单元格,我希望它可以分页启用。 但我希望它捕捉到每个单元格(就像App Store应用程序一样),而不是滚动视图的全部宽度。 我怎样才能做到这一点?

如何在UICollectionViewCell上显示标准复选标记?

我正在devise一个带有UICollectionView的iOS应用程序,我希望用户能够在这个视图中select多个项目。 看来苹果公司在这种情况下使用的标记标记风格。 例如,在下面的图片中,您可以在分享工作表中select多张照片时看到它。 根据文档 ,您负责更新单元的UI以反映其select状态。 我知道在UITableViewCell上,你可以设置accessoryType属性来添加一个复选标记,但我似乎无法findUICollectionViewCell的任何等价物。 有没有一种方法苹果公司提供使用这个复选标记在我的应用程序,除了试图从图像中抓取这个图标?

UIRefreshControl与iOS7中的UICollectionView

在我的应用程序中,我使用集合视图的刷新控制。 UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:[UIScreen mainScreen].bounds]; collectionView.alwaysBounceVertical = YES; … [self.view addSubview:collectionView]; UIRefreshControl *refreshControl = [UIRefreshControl new]; [collectionView addSubview:refreshControl]; iOS7有一些令人讨厌的错误,当你拉取集合视图,并且在刷新开始时不松开你的手指时,垂直contentOffset向下移动20-30点,导致难看的滚动跳跃。 如果你在UITableViewController之外使用刷新控制,表格也有这个问题。 但对于他们来说,可以通过将UIRefreshControl实例分配给UITableView的私有属性_refreshControl来轻松解决: @interface UITableView () – (void)_setRefreshControl:(UIRefreshControl *)refreshControl; @end … UITableView *tableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds]; [self.view addSubview:tableView]; UIRefreshControl *refreshControl = [UIRefreshControl new]; [tableView addSubview:refreshControl]; [tableView _setRefreshControl:refreshControl]; 但是UICollectionView没有这样的属性,所以必须有一些手动处理它的方法。

UICollectionView当前可见的单元格索引

我在我的iPad应用程序中第一次使用UICollectionView 。 我设置了UICollectionView ,使其大小和单元大小相同,意味着一次只显示一个单元格。 问题:现在当用户滚动UICollectionView我需要知道哪个单元格可见,我必须更新其他UI元素的变化。 我没有find任何代表方法。 我怎样才能做到这一点? 码: [self.mainImageCollection setTag:MAIN_IMAGE_COLLECTION_VIEW]; [self.mainImageCollection registerClass:[InspirationMainImageCollectionCell class] forCellWithReuseIdentifier:@"cellIdentifier"]; [self.mainImageFlowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; [self.mainImageFlowLayout setMinimumInteritemSpacing:0.0f]; [self.mainImageFlowLayout setMinimumLineSpacing:0.0f]; self.mainImageFlowLayout.minimumLineSpacing = 0; [self.mainImageCollection setPagingEnabled:YES]; [self.mainImageCollection setShowsHorizontalScrollIndicator:NO]; [self.mainImageCollection setCollectionViewLayout:self.mainImageFlowLayout]; 我曾经尝试过: 由于UICollectionView符合UIScrollView ,当用户滚动以UIScrollViewDelegate方法结束时 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 但是上面的函数里面我怎么能得到UICollectionView当前可见单元UICollectionView ?

UICollectionView:必须使用非零布局参数进行初始化

我通过代码添加了UICollectionView 。 现在,应用程序崩溃的消息: UICollectionView must be initialized with a non-nil layout parameter 。 你有什么想法解决它? CollectionCell是UICollectionViewCell自定义类。 @property (nonatomic, strong) UICollectionView* collectionView; – (void)viewDidLoad { [super viewDidLoad]; self.collectionView = [[UICollectionView alloc]init]; [self.collectionView registerClass:[CollectionCell class] forCellWithReuseIdentifier:@"cell"]; UICollectionViewFlowLayout* flowLayout = [[UICollectionViewFlowLayout alloc]init]; flowLayout.itemSize = CGSizeMake(100, 100); [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; [self.collectionView setCollectionViewLayout:flowLayout]; self.collectionView.frame = CGRectMake(0, 60, 320, 500); self.collectionView.backgroundColor = [UIColor […]

UICollectionViewanimation(插入/删除项目)

我想在插入和/或删除UICollectionViewCell时自定义animation样式。 我需要这个的原因是,默认情况下,我看到插入一个单元格在animation中有一个平滑的淡入淡出,但删除一个单元格有一个移动到左侧的淡出animation的组合。 如果不是一个问题,我会非常高兴。 删除一个单元格后,当我添加新的单元格时它仍然会被重用,并且当它被重用时,它不会添加默认的淡入淡出效果,而是向左移动和淡入的组合。 我不知道为什么我在animation中出现这种不一致。 如果这是一个已知的bug /问题/愚蠢(在我身边),请让我知道如何解决它。 否则,请告诉我如何在单元格被删除时设置自定义animation(或指向我的教程)。 谢谢 UPDATE 通过inheritanceUICollectionViewFlowLayout并添加这行代码来修复奇怪的animation行为 – (UICollectionViewLayoutAttributes *) initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath { return nil; } 而已! 🙂

在UICollectionView上dynamic设置布局会导致无法解释的contentOffset更改

根据苹果公司的文档(并且在WWDC 2012上),可以dynamic地在UICollectionView上设置布局,甚至可以animation变化: 您通常在创build集合视图时指定布局对象,但也可以dynamic更改集合视图的布局。 布局对象存储在collectionViewLayout属性中。 设置这个属性可以直接更新布局,而不需要animation改变。 如果要为更改设置animation,则必须调用setCollectionViewLayout:animated:方法。 但是,在实践中,我发现UICollectionView对contentOffset进行了无法解释甚至无效的更改,导致单元格移动不正确,导致该function几乎无法使用。 为了说明这个问题,我将下面的示例代码放在一起,这些代码可以附加到放入故事板的默认集合视图控制器中: #import <UIKit/UIKit.h> @interface MyCollectionViewController : UICollectionViewController @end @implementation MyCollectionViewController – (void)viewDidLoad { [super viewDidLoad]; [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"CELL"]; self.collectionView.collectionViewLayout = [[UICollectionViewFlowLayout alloc] init]; } – (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 1; } – (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { UICollectionViewCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"CELL" forIndexPath:indexPath]; cell.backgroundColor = […]

UICollectionView单元格子视图不resize

在一个CollectionView中,一些单元格应该有一个附加的子视图或图层。 可以告诉CollectionView调整其单元格大小,因此所有内容都需要适当resize。 目前,这个单元格是从一个包含一个单元格的图像视图初始化的; 单元格笔尖链接到一个自定义的UICollectionViewCell子类,只有init。 Autoresize子视图被选中。 CollectionView被告知通过“sizeForItemAtIndexPath:”派生的值来返回单元格的大小。 我已经子类化FlowLayout,但它只指定ScrollDirection和Insets。 所有这一切工作正常。 问题:如何将子视图/图层添加到单元格,以便它也正确resize? 我尝试添加translatesAutoresizingMaskIntoConstraintsclosures子视图和图层,但这些不会自动更改大小。 也试图使用代码框架/视图,而不是笔尖。 我现在得到的最好的是cellForItemAtIndexPath中添加的cell.contentView.layer子图层: 这是通过从sizeForItemAtIndexPath:中存储单元格的frame.size来“手动”resize,这不仅是丑陋的,而且还以不同的单元格具有各种大小的子层结束。 任何帮助感激!

连续滚动查看; 水平和垂直

现在我一直在为这个任务苦苦挣扎。 我想开发的是一个scrollview或collectionview,它可以连续滚动垂直和水平。 这是我认为这应该看起来像一个形象。 透明框是从内存中重新加载的视图/单元格。 一旦视图/单元格出现在屏幕之外,就应该为即将到来的新单元格重用它。就像UITableViewController工作方式一样。 我知道一个UICollectionView只能制作为无限滚动横向或纵向,而不是两个。 但是,我不知道如何使用UIScrollView来做到这一点。 我试着附加在这个问题上的答案的代码,我可以得到它重新创build的意见(例如%20),但这不是我真正需要的..此外,它不是连续的。 我知道这是可能的,因为HBO Go应用程序这样做..我想完全相同的function。 我的问题:我怎样才能达到目标? 有什么指南/教程可以告诉我如何? 我找不到任何东西。