Tag: uicollectionview

UICollectionView performBatchUpdates同时插入,删除和移动

我正在尝试使用UICollectionView的performBatchUpdates方法来执行过滤操作(sorta),并在块中插入单元格,移动单元格和删除单元格。 我得到了一些奇怪的结果,所以我想知道这个行为是否真的被支持(我正在弄清楚这些行为是不是都搞砸了)。 我是否需要将每个“types”的动作(插入,移动和删除)分成独立的块?

如何获得UICollectionView标头的索引path?

使用视图的indexPathForItemAtPoint,我将得到一个单元格的索引path,但从来没有一个UICollectionReusableView(header / footer) – 因为它总是返回nil。

使用CollectionView隐藏单元格

我有一个导航控制器推送到集合视图控制器。 这个collectionView有一个NSArray的图像,我敢肯定,使用方法visibleCells的collectionView中有一些元素。 但是当我启动它时,没有显示单元。 这是我的代码: – (void)viewDidLoad { [super viewDidLoad]; images = [NSArray arrayWithObjects:@"angry_birds_cake.jpg", @"creme_brelee.jpg", @"egg_benedict.jpg", @"full_breakfast.jpg", @"green_tea.jpg", @"ham_and_cheese_panini.jpg", @"ham_and_egg_sandwich.jpg", @"hamburger.jpg", @"instant_noodle_with_egg.jpg", @"japanese_noodle_with_pork.jpg", @"mushroom_risotto.jpg", @"noodle_with_bbq_pork.jpg", @"starbucks_coffee.jpg", @"thai_shrimp_cake.jpg", @"vegetable_curry.jpg", @"white_chocolate_donut.jpg", nil]; } – (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return images.count; } – (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ static NSString *identifier = @"Cell"; UICollectionViewCell *cell; [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"]; […]

UICollectionView启用取消选中单元格,同时禁用允许MultipleSelection

什么时候 collectionView.allowsMultipleSelection = YES; 我可以取消select的单元格。 什么时候 collectionView.allowsMultipleSelection = NO; 我无法取消选中的单元格。 无论如何,我只能设置 collectionView.allowsMultipleSelection = NO; 和 能否取消选定的单元格? 所以要么select一个,要么没有select。 我知道你可以实现你自己的select,然后在检测到手势时调用setSelected。 但我正在寻找一个更原生的解决scheme,你可以在uicollectionView自己configuration的东西。 谢谢!

使用自动布局在CollectionView的CollectionViewCell中自动调整图像大小

我有一个水平的UICollectionViewFlowLayout的collectionView。 我正在努力实现: 如果设备方向是纵向,则UIImageView宽度将被视为宽度,并自动计算高度(就像通常在自动布局中发生的那样)。 和风景模式一样。 示例 – iPhone上的标准照片应用程序。 不幸的是,我不明白如何用autoLayout实现它。 我为UIImageView设置了与单元大小相同的约束。 但看起来像卖本身不能被固定到父视图。 看完类似的问题看起来像单元格必须通过编程resize func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { return CGSize(width: width, height: height) } 而在这里我卡住,因为我知道屏幕的宽度,但不知道如何dynamic计算高度。 关于图像高度: 我有这样的声明: var pageImages = [UIImage]() override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let cell: ImageDetailViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! ImageDetailViewCell […]

如何在下方顶部的collections视图中为节添加标题

我正在使用search栏的集合视图。 我已经添加search栏通过鳕鱼从(0,0)orgin从顶部。 所以现在我的形象是这样的: [![在这里input图片描述] [1]] [1] 但我需要在我的search栏下面的标题。 我通过故事board.But,但运行我的标题名称和search栏是在相同的orgin.I需要把我的标题部分在myseaarch酒吧下面。 注:我唱3段header.any想法或代码是非常有帮助的。 在这里我的search栏的代码… #import "CollectionViewController.h" #import "CollectionViewCell.h" @interface CollectionViewController ()<UISearchBarDelegate> @property (nonatomic,strong) NSArray *dataSource; @property (nonatomic,strong) NSArray *dataSourceForSearchResult; @property (nonatomic) BOOL searchBarActive; @property (nonatomic) float searchBarBoundsY; @property (nonatomic,strong) UISearchBar *searchBar; @property (nonatomic,strong) UIRefreshControl *refreshControl; @end @implementation CollectionViewController static NSString * const reuseIdentifier = @"Cell"; – (void)viewDidLoad { [super […]

带有ScrollView的IOS UICollectionView

我在我的数据库中有6个图像。 我已经创build了UIScrollView *scroll; 之后,我创build了UICollectionView并将UICollectionView添加到了UIScrollView UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init]; collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(screenWidth*i,5,screenWidth ,self.scroll.frame.size.height-5) collectionViewLayout:layout]; [collectionView setDataSource:self]; [collectionView setDelegate:self]; [collectionView setPagingEnabled:YES]; collectionView.showsHorizontalScrollIndicator = NO; collectionView.showsVerticalScrollIndicator = NO; [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"]; [collectionView setBackgroundColor:[UIColor purpleColor]]; [self.scroll addSubview:collectionView]; 而现在,当我滚动我想在这个代码下面重新加载UICollectionView数据: – (void)scrollViewDidScroll:(UIScrollView *)sender { if (!pageControlBeingUsed) { [getAllEmoji removeAllObjects]; // Switch the indicator when more than 50% of […]

Swift 3:如何水平居中在一个UICollectionView只有一节的最后一行单元格?

我只有一个部分使用UICollectionView 。 这是一些可视化: [ xxx ] [ xxx ] [ xx ] 如果UICollectionView中的最后一行没有填满所有3个单元格,我想将这些单元格居中,如下所示: [ xxx ] [ xxx ] [ xx ] 我试图从以下地方实施解决scheme: 如何水平居中UICollectionView单元? 如何居中alignmentUICollectionView的单元格? 但是,解决scheme移动所有的单元格,我只想移动最后一行,如果最后一行不包含X数量的单元格,因为我只有一个部分。 我知道如何设置插入,但我不知道如何做到这一点只是一个部分,并试图调整最后一排单元格的插图。 我刚开始使用UICollectionView ,不知道如何解决这个问题?

animation时无法同时满足约束条件

我有六个用户约束设置与IB看起来像这样: H:|-(593)-[UIView(411)]-(20)-| V:|-(20)-[UIView(288)]-(396)-| 我通过更改约束然后调用layoutIfNeeded来增长和缩小视图。 例如,为了发展我的观点,我会做: H:|-(20)-[UIView(984)]-(20)-| V:|-(20)-[UIView(663)]-(20)-| 然后打电话 [UIView animateWithDuration:.5 animations:^{ [self.view layoutIfNeeded]; }]; 这种技术会增长和缩小我的观点,它看起来不错,但我给了一个相当混乱的警告: Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the […]

UICollectionViewFlowLayout Voice Over使用Flow Layout按顺序读取项目

我有两个问题关于可访问性和UICollectionViews,我希望得到一些专家的帮助。 另一个问题,关于节标题,可以在这里find。 我已经创build了一个示例项目来演示这两个问题。 我有一个UICollectionView使用UICollectionViewFlowLayout包含可变高度的项目。 UIFlowLayout将每行的元素垂直居中。 不幸的是,当启用Voice Over时,它似乎倾向于垂直放置较高的元素,导致它无序地读取项目。 您可以拉这个示例项目 ,运行它,启用声音,并通过项目滑动看到问题。 它创build具有随机高度的单元格,所以很可能会按顺序读取单元格。 有没有一种方法可以使收集视图顺序通过项目? 我觉得这是唯一有道理的方法,但是我找不到一个强制执行的方法。 设置集合视图来分组子视图似乎没有帮助。 任何帮助将不胜感激。