Tag: uicollectionview

重置UICollectionView上的滚动

我有一个水平的UICollectionView工作正常,滚动。 当我点击一个项目,我更新我的数据,并调用reloadData 。 这工作和新的数据显示在UICollectionView 。 问题是滚动位置不变,它仍然是查看最后的地方。 我想重置滚动到顶部(或留在我的情况)。 我怎样才能做到这一点?

UICollectionView:如何检测滚动停止

我正在使用UICollectionView快速滚动一组缩略图。 一旦滚动结束,我想显示一个更大的高分辨率版本的当前缩略图。 如何检测用户何时完成滚动? 我确实实现了didEndDisplayingCell ,但是这只能告诉我某个特定的单元格是否已经滚动; 它不会告诉我滚动动作何时完成。

在设置好数据之后调整UICollectionView单元的大小

我的UICollectionView单元格包含带有多行文本的UILabels 。 我不知道UICollectionViewCells的height ,直到在UILabel上设置文本。 -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath; 是我看到的大小UICollectionViewCells的初始方法,但是这被称为之前的单元格创build的UIStoryboard 。 有没有一种方法来布局集合和大小的单元格后,他们已经被渲染,我知道单元格的实际大小?

UICollectionView的dynamic单元格宽度取决于标签宽度

我有一个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 *)collectionView:(UICollectionView *)collectionView […]

如何定义旋转的CollectionView的大小

我有一个2个CollectionView控制器的视图控制器。 我想旋转只有一个集合视图调整到自定义大小,而另一个保持不变。 我曾尝试使用: – (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { // Adjust cell size for orientation if (UIDeviceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) { return CGSizeMake(170.f, 170.f); } return CGSizeMake(192.f, 192.f); } 但是,这只是改变了两个collectionviews。 我如何才能使它只针对一个集合?

UICollectionView – 水平滚动,水平布局?

我有一个UIScrollView,列出了一个图标的网格。 如果你想象iOS跳板的布局,你会非常接近正确的。 它有一个水平的页面滚动(就像跳板)。 但是,看起来布局不太正确。 看起来好像是从上到下布置项目。 因此,由于要显示的项目数量,我的最后一列只有2行。 我宁愿让最后一页的最后一行有两个项目,就像你在Springboard中看到的一样。 这怎么可以用UICollectionView和它的相关类来完成? 我必须编写一个自定义的UICollectionViewFlowLayout吗?

在UICollectionView上调用reloadData之后,contentSize不会更新

有谁知道为什么在UICollectionView上调用reloadData后,contentSize不会立即更新? 如果你需要知道contentSize,我发现最好的解决方法如下: [_collectionView reloadData]; double delayInSeconds = 0.0001; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), ^(void) { // TODO: Whatever it is you want to do now that you know the contentSize. }); 显然,这是一个相当脆弱的黑客,对苹果公司的实施做出了假设,但到目前为止,它已被certificate工作相当可靠。 有没有人有任何其他的解决方法或知识为什么发生这种情况? 我在辩论提交雷达,因为我不明白为什么他们不能在同一个运行循环中计算contentSize。 这就是UITableView在整个实现中的工作原理。 编辑:这个问题用来引用块内的setContentOffset方法,因为我想滚动我的应用程序中的集合视图。 我已经删除了方法调用,因为人们的答案集中在为什么我不使用scrollToItemAtIndexPath为什么contentSize没有被更新。

重新sortingUICollectionView的单元格

考虑具有stream布局和水平方向的UICollectionView 。 默认情况下,单元格从上到下,从左到右排列。 喜欢这个: 1 4 7 10 13 16 2 5 8 11 14 17 3 6 9 12 15 18 在我的情况下,集合视图是分页的,它的devise使每个页面都有特定数量的单元格。 因此,更自然的sorting是: 1 2 3 10 11 12 4 5 6 – 13 14 15 7 8 9 16 17 18 最简单的做法是实现我自己的自定义布局吗? 特别是,我不想放弃使用UICollectionViewFlowLayout免费提供的任何function(例如插入/移除animation)。 或者一般来说,如何在stream布局上实现重sorting函数f(n) ? 例如,同样可适用于从右到左sorting。 我的方法到目前为止 我的第一个方法是UICollectionViewFlowLayout并重写layoutAttributesForItemAtIndexPath: :: – (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath […]

UICollectionView不滚动

我有一个UICollectionView设置与UICollectionViewDataSource ,目前提供六个项目。 这些比填写屏幕所需要的要less。 问题是我的collections视图只在有足够的项目填满屏幕时滚动(用10,20testing)。 当显示更less的项目,它甚至不会做这个反弹animation,我试图得到,它只是固定的。 – (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateCollectionViewData) name:UIDocumentStateChangedNotification object:nil]; UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init]; flowLayout.itemSize = CGSizeMake(160, 100); flowLayout.minimumInteritemSpacing = 0; flowLayout.minimumLineSpacing = 0; self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:flowLayout]; [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"]; self.collectionView.delegate = self; self.collectionView.dataSource = self; self.collectionView.bounces = YES; [self.view addSubview:self.collectionView]; } – (NSInteger)collectionView:(UICollectionView *)collectionView […]

从UICollectionView获取单元格的屏幕位置

这不是解释如何解决这个问题的问题。 首先要认识到的是UICollectionView是从UIScrollViewinheritance而来的 – 所以使用滚动视图的内容进行标准查找是最好的解决scheme。 这是我正在处理的问题: 我有一个UICollectionView在每个单元中有不同的项目 – 以及不同types的单元格。 我需要select一个单元格,以使单元格中的图像的效果显现为展开并占据整个屏幕。 我如何扩展是另一个职位。 面临的挑战是让单元格在屏幕上的位置,以便animation部分从哪里开始有一个参考点。 所以,为了方便获取这些信息 – 请考虑以下代码: 首先注意: UICollectionView *picturesCollectionView; DrawingCell cell; // -> instanceof UICollectionViewCell with custom items. // first, get the list of cells that are visible on the screen – you must do this every time // since the items can change… This is a […]