Tag: uicollectionview

为UICollectionViewLayout使用失效上下文

所以我已经在我的UICollectionView中实现了工作粘滞标题,部分原因YES从shouldInvalidateLayoutForBoundsChange:返回YES 。 但是,这会影响性能,我不想使整个布局无效,只有我的标题部分。 现在,根据官方文档,我可以使用UICollectionViewLayoutInvalidationContext为我的布局定义一个自定义的无效上下文,但文档是非常缺乏。 它要求我“定义代表可以独立重新计算的布局数据部分的自定义属性”,但我不明白这是什么意思。 有没有人有任何经验UICollectionViewLayoutInvalidationContext ?

如何像UITableView的tableHeaderView一样在UICollectionView中添加HeaderView

我怎样才能在UICollectionView的顶部添加一个标题视图/顶视图(不是部分标题)? 它应该充当UITableView的tableHeaderView属性。 因此,它需要位于第一部分标题视图的顶部(位于索引0的部分之前),与其余内容一起滚动,并进行用户交互。 到目前为止我所得到的最好的结果是为第一个节头视图创build一个特殊的XIB(使用MyCollectionReusableView子类作为文件的所有者),这个视图的大小足以在头中包含我的子视图,这是一种黑客,我想,我还没有设法检测到触摸。 不知道如果我可以让我的MyCollectionReusableView子类允许触摸或有更好的方法。

何时使用UICollectionView而不是UITableView?

我发现UICollectionView就像在iOS6中引入的UITableView的升级版本,但是什么时候应该selectUICollectionView而不是UITableView ? 还有使用UITableView应用程序,如果UICollectionView可以做任何事情UITableView可以做,为什么人们仍然使用UITableView ? 就表演而言,是否有区别? 谢谢!

UICollectionView与一个粘性头

我发现了一个关于如何制作粘性标题的博客 ,它的效果很好。 唯一的事情是我不认为它考虑到sectionInserts。 这是如何打算看看: 我有我的插入: collectionViewFlowLayout.sectionInset = UIEdgeInsetsMake(16, 16, 16, 16); 粘头,它下移了16个像素: 我试着用原来的代码来思考,我认为问题在于最后一部分: layoutAttributes.frame = (CGRect){ .origin = CGPointMake(origin.x, origin.y), .size = layoutAttributes.frame.size 如果我将其更改为origin.y – 16 ,标题将从正确的位置开始,但是当被推起时,头部的16个像素将脱离屏幕: 我不知道如何让它考虑sectionInsects。 任何人都可以帮忙吗? 以下是博客中的完整代码: – (NSArray *) layoutAttributesForElementsInRect:(CGRect)rect { NSMutableArray *answer = [[super layoutAttributesForElementsInRect:rect] mutableCopy]; UICollectionView * const cv = self.collectionView; CGPoint const contentOffset = cv.contentOffset; NSMutableIndexSet *missingSections = […]

在reloadItemsAtIndexPaths之后避免UICollectionView的animation

UICollectionView在reloadItemsAtIndexPaths被调用(淡入淡出animation)后animation的项目。 有没有办法避免这个animation? iOS 6

如何确定什么时候所有的图像已经从Swift中的一组下载?

我正在使用PinRemoteImage库来下载填充collectionView图像。 我想基于图像高度dynamic更新单元格高度,所以我需要知道何时下载了所有图像,以便我可以重新加载/无效我的collectionViewLayout 。 什么是最好的方式来确定什么时候没有更多的图像下载? override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! PinCollectionViewCell cell.pinImage?.pin_updateWithProgress = true cell.pinImage?.image = nil if let pinImageURL = self.pins[indexPath.row].largestImage().url { cell.pinImage?.pin_setImageFromURL(pinImageURL, completion: ({ (result : PINRemoteImageManagerResult) -> Void in if let image = result.image { self.imageArray.append(image) }

快速的UICellView单元格布局

我正在尝试使用UICollectionView来创build一个网格,用户可以通过y单元格(在文本框中input)将其设置为x个单元格,同时在屏幕上占用相同的宽度。 我已经能够创build一个包含正确数量的单元格的网格视图,但是这些网格视图的布局还不正确,即input5乘以7将会给出35个单元格,而不是在5单元格中按7单元格布局。 这是迄今为止的代码。 MyCollectionViewCell.swift导入UIKit class MyCollectionViewCell: UICollectionViewCell { @IBOutlet var cellLabel: UILabel! } CreateNewProject.swift class CreateNewProject : UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UITextFieldDelegate { @IBOutlet var widthTextBox: UITextField! @IBOutlet var lengthTextBox: UITextField! @IBOutlet var myCollection: UICollectionView! let reuseIdentifier = "cell" // also enter this string as the cell identifier in the storyboard @IBAction func updateView(sender: AnyObject) { […]

在TableViewCell里面的UICollectionView没有被调用

我有一个UITableView包含一个水平滚动UICollectionView在这样的每个单元格 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ServiceTypeCell cell.collectionView.delegate = self cell.collectionView.dataSource = self cell.lblName.text = serviceTypes[indexPath.row].name cell.tag = getTag(indexPath) print("uitableviewcell : \(indexPath)") return cell } 并在每个UICollectionViews func numberOfSections(in collectionView: UICollectionView) -> Int { return 1 } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection […]

在UITableView原型中包含图像的UICollectionView单元格

更新:我解决了我的主要问题正确的图像不加载,直到滚动collectionView。 我添加了一个collectionView.reloadData()到tableView:cellForRowAtIndexPath。 我也做了一些修改来预加载序列数组,而不是在滚动表(tableView:cellForRowAtIndexPath)的时候创build它。 如果您有兴趣,可以将更新添加到GitHub。 https://github.com/Druiced/OpenDeck 一旦我找出如何防止应用程序崩溃,当dynamic值被放置在返回(如果我将其设置为15,应用程序不会崩溃),我会后续: func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return count(Array(sequenceArray[collectionView.tag])) / 2 } 原来的post:请求一些指导。 本教程帮助我意识到这必须与我的DataSource / Delegate有关。 作者使用addSubview构build单元格,而不是利用Xcode原型单元格,这似乎是一件很酷的事情,所以我正在尝试这样做。 http://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell 任何批评我的做法或不遵循最佳做法是值得欢迎的。 表中的每个单元格都有一个UICollectionView。 集合视图中的每个单元格按保存的“序列”string的顺序显示图像。 例如:“ADKDQDJDTD”链接到AD.png KD.png QD.png JD.png TD.png 我有两个问题,我似乎无法通过。 numberOfItemsInSection当卡数由数组长度驱动(返回handArray.count / 2)时会变得怪异。 如果我放置一个固定的号码应用程序将工作,但不是很光滑。 桌子第一次出现时,正确的牌不会显示,直到我上下滚动桌子。 它也显示每个CollectionView的数据是交叉的path,因为当快速上下滚动时显示错误的卡片。 我几乎肯定这与我的数据源是如何设置的。 DeckTableViewController.swift import UIKit import Parse var deviceID: String? var noRefresh: Bool? var sequenceArray: […]

强制collectionView只有2行

我必须做一个集合视图,以便不考虑iPhone的大小,我们每行只有2个图像,我们也需要每行和每列之间的边界,如图所示。 我想要这样: