Tag: uicollectionviewlayout

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 […]

自定义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 […]

在UICollectionView中显示上一个/下一个单元格的预览时,如何减慢滚动速度?

我知道这个问题已经有很多问题了。 但是大部分问题已经过时或者没有答案。 我的执行问题不是预览,但其分页速度? 我可以在UICollectionView显示前一个/下一个单元格,但是当我尝试快速滚动时,它将滚动(跳过)1或2页。 当我以很快的速度滚动时,会发生这种情况。 对于笔记,我正在使用自定义布局。 这是我的代码: – (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity { CGRect cvBounds = self.collectionView.bounds; CGFloat halfWidth = cvBounds.size.width * 0.5f; CGFloat proposedContentOffsetCenterX = proposedContentOffset.x + halfWidth; NSArray* attributesArray = [self layoutAttributesForElementsInRect:cvBounds]; UICollectionViewLayoutAttributes* candidateAttributes; for (UICollectionViewLayoutAttributes* attributes in attributesArray) { // == Skip comparison with non-cell items (headers and footers) == // if (attributes.representedElementCategory != […]

UICollectionView – 一次一个Cell的水平分页

我试图用collectionView来实现一个类似于效果的旋转木马。 我实现了UICollectionView并将其设置为水平显示单元格。 唯一的问题是我怎样才能允许一个单元格的外观,并将该单元格居中在屏幕上。 注意:寻呼已启用。 我发现这个代码,试了一下,但可悲的是没有工作 代码参考: 用Swift创build一个分页UICollectionView override func targetContentOffsetForProposedContentOffset(proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint { if let cv = self.collectionView { let cvBounds = cv.bounds let halfWidth = cvBounds.size.width * 0.5; let proposedContentOffsetCenterX = proposedContentOffset.x + halfWidth; if let attributesForVisibleCells = self.layoutAttributesForElementsInRect(cvBounds) { var candidateAttributes : UICollectionViewLayoutAttributes? for attributes in attributesForVisibleCells { // […]

UICollectionElementKindCell带有标识符的视图不能出队

我有UICollectionView,但似乎我设置一切正确。 但是我得到的错误: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier PeopleCellForList – must register a nib or a class for the identifier or connect a prototype cell in a storyboard' 我的故事: 我的代码是: @interface PeopleCellForList : UICollectionViewCell @end @implementation PeopleCellForList @end #pragma mark – UICollectionView Datasource – (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section { return self.arrayPeople.count; } […]

是否有可能作为一个单位缩放UICollectionView?

我们最近的项目中有一个关卡地图视图。 它包括水平标记作为UICollectionViewCells和各种UICollectionReusableViews乐趣装饰。 我们希望能够放大/缩小(这是一个大的地图)。 我曾希望我可以使用内部的UIScrollView来做到这一点,但是,你不能放大自己…只有一个子视图。 无论如何,要做到这一点,除了单独缩放和重新放置每个元素,因为我缩放? 感觉它应该是一个普通的东西,因此是一个更“内置”的解决scheme。

如何垂直alignmentUICollectionView中的UICollectionViewCells?

我有一个水平滚动的UICollectionView上的不同高度的单元格,看起来垂直均匀地分配单元格,留下单元格之间的空白空间,我想顶部alignment它们,并在每列的底部有variables的空白空间。

UICollectionView单元重叠

我有一个水平的UICollectionView。 我想让这些单元格相互重叠60像素,以便第二个单元格重叠60个像素,第三个重叠第二个相同的数量,依此类推。 我试过子类UICollectionViewFlowLayout。 但是我不能将UICollectionviewCell放在另一个上面。

UICollectionView中带有自定义UICollectionViewLayout的节的标题

我正在与自定义布局的UICollectionView 。 在两天内,我无法理解如何将标题添加到UICollectionView 。 我有非常简单的视图控制器(在自定义布局故事板中创build): class ACollectionViewController: UICollectionViewController { enum Identifiers: String { case CellIdentifier = "Cell" case HeaderIdentifier = "Header" } override func viewDidLoad() { super.viewDidLoad() self.collectionView.registerClass(UICollectionReusableView.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: Identifiers.HeaderIdentifier.rawValue) } // MARK: UICollectionViewDataSource override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { return 1 } override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int […]

点击时展开UICollectionView及其单元格

我正在尝试制作一个过渡animation,如链接中的演示。 所以当我点击单元格时,它会展开并覆盖整个屏幕。 这里是我的代码(我不得不承认,我不熟悉CollectionView) import UIKit class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate { @IBOutlet weak var mainDesLabel: UILabel! @IBOutlet weak var collectionView: UICollectionView! @IBOutlet weak var secDesLabel: UILabel! let searchBar = UISearchBar() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.collectionView.delegate = self self.collectionView.dataSource = self self.collectionView.backgroundColor […]