Questions tagged «uicollectionview»

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

16
UICollectionView自动调整大小的单元格
我正在尝试UICollectionViewCells使用“自动版式” 调整大小,但似乎无法使单元格自行调整大小以适应内容。我无法理解如何从单元的contentView内部内容更新单元的大小。 这是我尝试过的设置: 在其contentView中UICollectionViewCell使用进行自定义UITextView。 滚动到UITextView禁用。 contentView的水平约束为:“ H:| [_textView(320)]”,即,UITextView以固定的宽度320固定在单元格的左侧。 contentView的垂直约束为:“ V:| -0-[_ textView]”,即UITextView固定在单元格顶部。 的UITextView高度限制设置为一个常量,UITextView报告将适合文本。 单元格背景设置为红色,UITextView背景设置为蓝色的外观如下: 我把我已经在GitHub上玩的项目在这里。

25
UICollectionView中的单元格间距
如何在的一部分中设置像元间距UICollectionView?我知道有一个属性minimumInteritemSpacing我将其设置为5.0,但间距未显示为5.0。我已经实现了流程委托方法。 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { return 5.0; } 我仍然没有得到理想的结果。我认为是最小间距。我没有办法设置最大间距吗?

15
UICollectionView间距边距
我有一个UICollectionView显示照片的。我使用创建了collectionview UICollectionViewFlowLayout。效果不错,但我想在边距上留一些间距。是否可以使用UICollectionViewFlowLayout或我必须自己实现UICollectionViewLayout?

5
如何使用Swift创建简单的集合视图
我正在尝试学习使用方法UICollectionView。该文档有点难以理解,我发现的教程是在Objective C或长期复杂的项目中。 当我学习使用方法时UITableView,我们❤Swift的“ 如何使用iOS 8创建简单的表格视图”和Swift有了一个非常基本的设置和说明来帮助我前进。有这样的东西UICollectionView吗? 下面的答案是我试图学习这样做的尝试。

11
以编程方式创建UICollectionView
我正在寻找一个指南或教程,它将向我展示如何仅使用代码来设置简单的UICollectionView。 我正在仔细阅读Apples网站上的文档,并且也在使用参考手册。 但是我真的会从一个简单的指南中受益,该指南可以向我展示如何设置UICollectionView,而不必使用Storyboards或XIB / NIB文件-但是不幸的是,当我搜索时,我所能找到的只是带有Storyboard的教程。

7
仅当集合填充容器的高度时,UICollectionView上的UIRefreshControl才起作用
我试图将添加UIRefreshControl到UICollectionView,但问题是,刷新控制不会出现,除非集合视图填补了其父容器的高度。换句话说,除非收集视图足够长以至于需要滚动,否则无法将其下拉以显示刷新控制视图。一旦集合超过其父容器的高度,它将被下拉并显示刷新视图。 我已经建立了一个快速的iOS项目,该项目仅UICollectionView在主视图内部,并具有集合视图的出口,以便可以在中添加UIRefreshControl它viewDidLoad。还有一个带有重用标识符的原型单元cCell 这就是控制器中的所有代码,并且很好地演示了该问题。在此代码中,我将单元格的高度设置为100,这不足以填充显示,因此无法拉动视图,也不会显示刷新控件。将其设置为较高的值以填充显示,然后它可以工作。有任何想法吗? @interface ViewController () <UICollectionViewDelegateFlowLayout, UICollectionViewDataSource> @property (strong, nonatomic) IBOutlet UICollectionView *collectionView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; [self.collectionView addSubview:refreshControl]; } -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 1; } -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { …

9
如何设置单元格间距和UICollectionView-UICollectionViewFlowLayout的大小比例?
我正在尝试添加UICollectionView到ViewController,并且我需要“每行”有3个单元格,单元格之间没有空格(它看起来应该像网格)。单元格的宽度应该是屏幕尺寸的三分之一,所以我认为layout.item宽度应该相同。但是然后我得到了: 如果我减小该尺寸(例如减少7或8像素),效果会更好,但是行中的第三个单元格不是完全可见的,并且我仍然具有该空白空间(顶部和底部以及左侧和右侧)。 class ViewController: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource { var collectionView: UICollectionView? var screenSize: CGRect! var screenWidth: CGFloat! var screenHeight: CGFloat! override func viewDidLoad() { super.viewDidLoad() screenSize = UIScreen.mainScreen().bounds screenWidth = screenSize.width screenHeight = screenSize.height // Do any additional setup after loading the view, typically from a nib let layout: UICollectionViewFlowLayout …

15
UITableViewCell中的UICollectionView —动态高度?
我们的应用程序屏幕之一要求我们将放置在UICollectionView内部UITableViewCell。这UICollectionView将具有动态数量的项目,从而导致高度也必须动态计算。但是,我在尝试计算Embedded的高度时遇到了问题UICollectionView。 我们的总体架构UIViewController是在情节提要中创建的,并且确实使用了自动布局。但是,我不知道如何UITableViewCell基于的高度动态增加的高度UICollectionView。 谁能给一些技巧或建议,以实现这一目标?

15
UICollectionView,全宽单元格,是否允许自动布局动态高度?
在垂直方向UICollectionView, 是否可以使用全宽单元格,但是可以通过自动布局控制动态高度? 这让我感到震惊,因为它可能是“ iOS中最重要的问题,没有一个很好的答案”。 重要: 请注意,在99%的情况下,要实现全宽单元格+自动布局动态高度,只需使用表格视图即可。就这么简单。 那么在哪里需要收集视图的示例是什么? 集合视图比表视图强大得多。 一个简单的示例,您实际上必须使用集合视图来实现全宽单元+自动布局动态高度: 如果在集合视图中的两个布局之间制作动画。例如,当设备旋转时,在1列和2列之间。 这是iOS中的一个普通习惯用法。不幸的是,这只能通过解决此质量保证中提出的问题来实现。:-/

13
如何使用FlowLayout确定UICollectionView的高度
我UICollectionView有一个UICollectionViewFlowLayout,我想计算其内容大小(以返回intrinsicContentSize通过AutoLayout调整其高度所需的返回值)。 问题是:即使我所有单元格的高度都固定且相等,我也不知道在中有多少“行” /行UICollectionView。我也无法通过数据源中的项目数来确定该计数,因为代表数据项的单元格的宽度不同,因此,在一行中的项目数也随之变化UICollectionView。 由于我在官方文档中找不到关于此主题的任何提示,并且谷歌搜索没有给我带来任何进一步的帮助,因此,我们将不胜感激任何帮助和想法。

16
UICollectionView当前可见的单元格索引
我UICollectionView第一次在iPad应用程序中使用。我已设置UICollectionView其大小和单元格大小相同,这意味着一次只能显示一次单元格。 问题: 现在,当用户滚动UICollectionView时,我需要知道哪个单元格可见,我必须在更改时更新其他UI元素。我没有为此找到任何委托方法。我该如何实现? 码: [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?

5
使用自动布局在UICollectionView中指定单元格的一维
在iOS 8中,UICollectionViewFlowLayout支持根据单元格自身的内容大小自动调整其大小。这将根据其内容在宽度和高度上调整单元格的大小。 是否可以为所有单元格的宽度(或高度)指定固定值,并允许其他尺寸调整大小? 对于一个简单的示例,请考虑单元格中的多行标签,将其放置在单元格的侧面有约束。多行标签可以用不同的方式调整大小以容纳文本。单元格应填充集合视图的宽度,并相应地调整其高度。而是随意调整单元格的大小,并且当单元格大小大于集合视图的不可滚动尺寸时,甚至会导致崩溃。 iOS 8引入了该方法。systemLayoutSizeFittingSize: withHorizontalFittingPriority: verticalFittingPriority:对于集合视图中的每个单元格,布局在单元格上调用此方法,并传入估计的大小。对我来说有意义的是在单元格上覆盖此方法,传递给定的大小,并将水平约束设置为required,将低优先级设置为纵向约束。这样,水平尺寸固定为布局中设置的值,垂直尺寸可以灵活。 像这样: - (UICollectionViewLayoutAttributes *)preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes { UICollectionViewLayoutAttributes *attributes = [super preferredLayoutAttributesFittingAttributes:layoutAttributes]; attributes.size = [self systemLayoutSizeFittingSize:layoutAttributes.size withHorizontalFittingPriority:UILayoutPriorityRequired verticalFittingPriority:UILayoutPriorityFittingSizeLevel]; return attributes; } 但是,用这种方法返回的大小是完全奇怪的。我对这种方法的文档非常不清楚,并提到使用UILayoutFittingCompressedSize UILayoutFittingExpandedSize仅代表零大小和相当大的常数的常量。 size此方法的参数真的只是传递两个常量的一种方法吗?有没有办法实现我期望的行为以获得给定尺寸的适当高度? 替代解决方案 1)添加将为单元指定特定宽度的约束以实现正确的布局。这是一个较差的解决方案,因为应该将该约束设置为它没有安全引用的单元格收集视图的大小。在配置单元格时可以传递该约束的值,但这似乎完全违反直觉。这也很尴尬,因为直接将约束添加到单元格或其内容视图会导致很多问题。 2)使用表格视图。表格视图开箱即用,因为单元格具有固定的宽度,但是这不能适应其他情况,例如iPad布局中具有固定宽度的单元格在多列中。

21
通过单元而不是屏幕分页UICollectionView
我UICollectionView使用水平滚动,并且在整个屏幕上始终并排有2个单元格。我需要滚动才能在单元格开始处停止。启用分页后,集合视图将滚动整个页面(一次是2个单元格),然后停止。 我需要启用单个单元格滚动,或者停止在单元格边缘的同时滚动多个单元格。 我试图子类化UICollectionViewFlowLayout并实现该方法targetContentOffsetForProposedContentOffset,但是到目前为止,我只能破坏我的收藏夹视图,并且它停止了滚动。有没有更简单的方法来实现这一目标以及如何实现,或者我真的需要实现所有UICollectionViewFlowLayout子类方法吗?谢谢。

8
在UICollectionViewCell上长按手势
我想知道如何将长按手势识别器添加到UICollectionView(的子类)中。我在文档中读到它是默认添加的,但我不知道如何添加。 我想要做的是:长按一个单元格(我有一个github上的日历东西),获取被点击的单元格,然后对其进行处理。我需要知道长时间压制的细胞。对不起这个广泛的问题,但是我在Google或SO上找不到更好的东西

3
如何设置UICollectionViewDelegateFlowLayout?
UIViewController维护对UICollectionView的引用。控制器应使用UICollectionViewDelegateFlowLayout修改内置流布局。 将视图的数据源设置为self很容易: MyViewController.m - (void)viewDidLoad { self.collectionView.dataSource = self; } 但是,如何将控制器设置为视图的委托流布局? - (void)viewDidLoad { self.collectionView.dataSource= self; // self.collectionView.??? = self; } 我试过了: - (void)viewDidLoad { self.collectionView.dataSource= self; self.collectionView.collectionViewLayout = self; } 但是我得到了错误:“分配不兼容的指针类型...”。 集合头文件如下所示: MyViewController.h @interface MyViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>

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.