Tag: uicollectionview

UICollectionView放大select的单元格

我想在选中时调整我的collections夹视图中的特定单元格。 我发现如何从以前的post,但遇到了一个问题。 我发现debugging时select滞后一个,但我不知道为什么。 例如,如果我通过点击select一个单元格,则什么都不会发生。 如果我select另一个单元格后,那么我select的第一个单元格被放大。 如果我select第三个单元格,则第二个单元格会放大。 等等。 这就是我实现的方式,只有一次细胞像我想要的那样同时放大: var selectedIndexPath: NSIndexPath! func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { if selectedIndexPath != nil { //We know that we have to enlarge at least one cell if indexPath == selectedIndexPath { return CGSize(width: self.gallery.frame.size.width, height: self.gallery.frame.size.width) } else { return CGSize(width: self.gallery.frame.size.width/3.0, […]

在滚动期间重用UICollectionViewCells

我有一个问题, 我有一个简单的UICollectionView与静态200单元格,从Flickr加载图像。 我的CellForItemAtIndexPath看起来像这样: – (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath { UICollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"FlickrCell" forIndexPath:indexPath]; cell.backgroundColor = [self generateRandomUIColor]; if(![[cell.subviews objectAtIndex:0] isKindOfClass:[PFImageView class]]) { NSURL *staticPhotoURL = [self.context photoSourceURLFromDictionary:[self.photos objectAtIndex:indexPath.row] size:OFFlickrSmallSize]; PFImageView *imageView = [[PFImageView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.height, cell.frame.size.width) andImageURL:staticPhotoURL andOwningCell:cell]; [cell addSubview:imageView]; } return cell; } PFImageView是UIImageView一个子类,它在后台线程上加载一个Flickr照片URL,然后在主线程上更新它自己的图像 – 这工作正常。 逻辑非常简单 – 如果没有一个可出队的话,我创build一个单元格。 […]

UITableView到UICollectionView与prepareForSegue没有得到调用

我对这个还是比较新鲜的。 所以要温柔。 我想从flickr下载一个设置列表,然后select下面的设置并查看它的图片。 很远我签订了一个方法来获取setlist。 现在我想能够点击其中一个列表并移动到UICollectionsView并查看它的图像。 我需要能够在UITableViewselect行的帮助。 我想我错过了某个步骤,但似乎无法find我失踪的洞。 无论如何,这是代码 – (void)viewDidLoad { [super viewDidLoad]; self.tableView.rowHeight = 44; photoURLs = [[NSMutableArray alloc] init]; photoSetNames = [[NSMutableArray alloc] init]; photoids = [[NSMutableArray alloc] init]; [self loadFlickrPhotos]; } – (void)loadFlickrPhotos { // 1. Build your Flickr API request w/Flickr API key in FlickrAPIKey.h NSString *urlString = [NSString stringWithFormat:@"http://api.flickr.com/services/rest/?method=flickr.photosets.getList&api_key=%@&user_id=%@&per_page=10&format=json&nojsoncallback=1", FlickrAPIKey, […]

如何在集合视图中显示广告

我正在尝试在我的collectionView中随机添加一些横幅广告。 每个collectionView单元格将是一个基本的图像(在这里黑色的方块使事情变得更容易)从一个数组dynamic填充(假设这是一个非常长的数组,并称之为“longDataArray”),我会从网上获得。 我可以设法添加一些横幅广告到我的collectionView,但问题是,它打破了我的longDataArray的顺序。 例如,为了testing在indexPath 6添加广告横幅的时间,广告横幅正确地显示在indexPath 6,我能够pipe理单元格的宽度变化, 但是 indexPath对应的图像6我的longDataArray显然永远不会出现。 我也可以把我的longDataArray分成两部分,然后使用部分:section 0 = firstPartOfArray,section 1 = ad banner,section 2 = secondPartOfArray。 但是,这需要很大的努力来创build不同的数组和节,只是添加一个广告横幅,显然不是我正在寻找的。 所以我的问题是,你如何在你的collectionView中添加横幅广告(只有一个部分),但保持indexPath逻辑? 我search了很多关于这个的内容,并且很惊讶我不能为这个问题提出任何解决scheme。 你们有什么想法吗? 谢谢!

当UICollectionView下面有一个UIView时,我怎样才能让我的单元格可选?

我有一个集合视图,并在它下面添加了一个UIView。 单元格显示在它的顶部,但它们不可选。 我怎样才能让他们再次select? 我到目前为止所尝试的: UIView有zPosition -1,我的单元格有+1 UIView.isUserInteractionEnabled = true 我曾尝试添加UIView作为view.addSubview和collectionView?.addSubview collectionView?.insertSubview(UIView,belowSubview:collectionView!) 这家伙有同样的问题,没有解决scheme提供: 在UICollectionView下插入子视图 编辑:我使用此代码来确定select的单元格 override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { //Code here… } 这一切都工作,当没有UIView下面。 但我想为我的collectionview内容插件有一个可见的“容器”,所以我创build了一个UIView。 问题是上面的代码不会被点击与UIView下面的单元格时被触发。

UICollectionView finishInteractiveTransition没有animation完成

我正在实现一个自定义的交互式集合视图布局转换,并且想要对它进行configuration,以便在调用finishInteractiveTransition使用一个转换布局transitionProgress为1.0, startInteractiveTransitionToCollectionViewLayout:completion:的完成块立即被触发。 我需要这种行为,因为我希望能够在完成后立即开始另一个转换。 有了这个完成块没有立即发射,我最终nested push animation can result in corrupted navigation bar日志中的nested push animation can result in corrupted navigation bar ,因为转换上下文还没有completeTransition:它的completeTransition:方法。 事实上,即使没有animation要求,也只有0.05秒的小延迟。 是否有可能强制UICollectionView不animation这个完成? 一些代码… 我有一个转换控制器,处理导航转换的animation和交互式转换。 该控制器的相关部分如下: – (void)startInteractiveTransition:(id<UIViewControllerContextTransitioning>)transitionContext { self.context = transitionContext; UIView *inView = [self.context containerView]; UICollectionViewController *fromCVC = (UICollectionViewController *)[self.context viewControllerForKey:UITransitionContextFromViewControllerKey]; UICollectionViewController *toCVC = (UICollectionViewController *)[self.context viewControllerForKey:UITransitionContextToViewControllerKey]; self.transitionLayout = (MyTransitionLayout *)[fromCVC.collectionView startInteractiveTransitionToCollectionViewLayout:toCVC.collectionViewLayout completion:^(BOOL […]

手势识别器如果在类初始化时创build,则不起作用

在集合视图中,我在类初始化时创build一个手势识别器。 在viewDidLoad方法中,然后将手势识别器添加到集合视图。 class ViewController: UIViewController { @IBOutlet weak var collectionView: UICollectionView! let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongGesture(gesture:))) @objc func handleLongGesture(gesture: UILongPressGestureRecognizer) { // some code } override func viewDidLoad() { super.viewDidLoad() collectionView.addGestureRecognizer(longPressGesture) } } 有了这个,手势识别器不起作用。 修复很简单:将longPressGesture移动到viewDidLoad方法就足够了,一切都按预期工作。 不过,我觉得第一个版本不行,这有点令人惊讶。 任何人都可以解释为什么第一个版本不工作? 这是因为,当手势识别器被创build时,收集视图还没有准备好手势? 那么,手势识别器必须知道它的目标才能被创build?

UICollectionView教程

我只是想知道是否有任何教程,其中解释了创build一个UICollectionView实用和显示为一个小的子subView的mainView 。 请注意:根本没有界面生成器

UICollectionView UseLayoutToLayoutNavigationTransitions具有不同的数据源

我有两个UICollectionView对象,都有不同的来源和委托。 我希望通过使用UseLayoutToLayoutNavigationTransitions实现转换的“照片应用程序”。 它不工作。 当我调用UseLayoutToLayoutNavigationTransitions它会更改布局,但不会更改内容。 第一张照片是第一个收集视图。 一系列类别和其中包含的人。 第二张照片是我想要animation最终成为一个类别内的一系列人。 最后的照片是现在发生的事情。 分类只是重新排列。

自定义UICollectionCell的nil标签

编辑 :看起来像这个相同的问题 我使用自定义布局和单元格进行了集合视图,但是我的单元格的位置有点偏移,所以我决定对它们进行编号,以便我可以更轻松地进行debugging。 我跟着这家伙的回答 ,使用标签给我的单元格编号。 不知何故, myLabel是零,导致我的应用程序崩溃。 我相信我已经正确连接了网点,但也许有人可以提供一个列表来检查我是否做错了什么。 视图控制器 import UIKit class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate { @IBOutlet var gridView: UICollectionView! private let reuseIdentifier = "DesignCell" private let numberOfSections = 1 private let numberOfCircles = 48 override func viewDidLoad() { super.viewDidLoad() self.gridView.registerClass(MyCell.self, forCellWithReuseIdentifier: reuseIdentifier) } func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { return numberOfSections } func […]