fat*_*oku 13 layout uicollectionview ios8 xcode6-beta5
我设法找出iOS 8下自我调整集合视图单元格的方法.
我想将此作为附件视图的一部分.
我遇到了崩溃...... stacktrace的有趣部分如下:
** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
*** First throw call stack:
(
0 CoreFoundation __exceptionPreprocess + 165
1 libobjc.A.dylib objc_exception_throw + 45
2 CoreFoundation -[__NSArrayM insertObject:atIndex:] + 954
3 UIKit -[UICollectionViewFlowLayout layoutAttributesForElementsInRect:] + 384
4 UIKit __45-[UICollectionViewData validateLayoutInRect:]_block_invoke + 144
5 UIKit -[UICollectionViewData validateLayoutInRect:] + 1396
6 UIKit -[UICollectionView layoutSubviews] + 170
7 UIKit -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 521
8 QuartzCore -[CALayer layoutSublayers] + 150
9 QuartzCore _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380
10 UIKit -[UIView(Hierarchy) layoutBelowIfNeeded] + 611
11 UIKit -[UIInputSetHostView layoutIfNeeded] + 105
12 UIKit __43-[UIInputWindowController setInputViewSet:]_block_invoke + 112
13 UIKit +[UIView(Animation) performWithoutAnimation:] + 65
14 UIKit -[UIInputWindowController setInputViewSet:] + 291
15 UIKit -[UIInputWindowController performOperations:withAnimationStyle:] + 50
16 UIKit -[UIPeripheralHost(UIKitInternal) setInputViews:animationStyle:] + 1054
17 UIKit -[UIResponder becomeFirstResponder] + 468
18 UIKit -[UIView(Hierarchy) becomeFirstResponder] + 99
19 UIKit -[UITextView becomeFirstResponder] + 75
...
Run Code Online (Sandbox Code Playgroud)
这看起来像一个Apple bug.为什么布局似乎返回空布局属性?
到目前为止我最好的想法是基于这个存储库:https://github.com/algal/SelfSizingCellsDemo
在 ViewController.swift 的第 50 行,我们生成label.preferredMaxLayoutWidth = 320了一个单元格,该单元格填充整个屏幕并在有足够文本的情况下换行。这需要更改以适应您正在使用的任何尺寸的屏幕。然后,在每个部分之后,您需要添加足够的文本来填充该标签,就像第 20 行所做的那样let items = smallitems.componentsSeparatedByString(" ") + [onelongitem]
这种方法的问题是,除了文本之外,我还不知道如何在该单元格中放置不同的视图。不过,这可能足以满足您的情况。
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |