如何快速在uicollectionview中动态访问单元格属性
Posted
技术标签:
【中文标题】如何快速在uicollectionview中动态访问单元格属性【英文标题】:How to access cell property dynamically in uicollectionview in swift 【发布时间】:2014-12-30 08:55:17 【问题描述】:UICollectionView 的帮助 我正在使用 textview 来显示内容。 Collectionview 包含 10 个单元格。我无法根据该 textview 的内容大小指定 textview 的高度。我一次显示一个单元格。在故事板中,textview 高度为 240px。但我需要根据内容大小扩展内容视图。我的代码如下。但如果我跑步, 错误接收为:FATAL ERROR WHILE UNWRAPPING reading_access has nil value。请指导我!
// MAIN CLASS
class read_page: UIViewController, UICollectionViewDataSource,UICollectionViewDelegate
@IBOutlet var reading_collection_view: UICollectionView!
override func viewDidLayoutSubviews()
super.viewDidLayoutSubviews()
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section:
Int) -> Int
return 10
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath:
NSIndexPath) -> UICollectionViewCell
var cell = story_collection_view.dequeueReusableCellWithReuseIdentifier("story_read",
forIndexPath: indexPath) as story_reading_cell
cell.reading_area_txtvw.frame.size.height = 750
return cell
// This code is working. But, from 3rd cell onwards it is working. When we compile,
// textview does not change. After scrolling two more cells, it is working. How to get
// its size from first cell onwards? How to change cell size?
【问题讨论】:
【参考方案1】:您首先需要注册 collectionViewCell 然后在 cellForItemAtIndexPath 中您可以使单元格出列。
我也不会使用 UIViewController,而是使用 UICollectionViewController,因为它提供了默认委托和数据源实现。
class read_page: UICollectionViewController
@IBOutlet var reading_collection_view: UICollectionView!
override func viewDidLoad()
super.viewDidLoad()
reading_collection_view.registerClass(reading_cell.self , forCellWithReuseIdentifier: "myCell")
//MARK: UICollectionViewDataSource
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
return 1
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
let myCell = reading_collection_view.dequeueReusableCellWithReuseIdentifier("myCell", forIndexPath: indexPath) as reading_cell
myCell.reading_area_txtvw.frame.size.height = myCell.reading_area_txtvw.contentSize.height
return myCell
【讨论】:
线程 1:EXC_BAD INSRUCTION(CODE = EXC_1386) 错误:致命错误:在展开可选值时意外发现 nil以上是关于如何快速在uicollectionview中动态访问单元格属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 中动态更改 UICollectionView 单元格高度
如何在 UICollectionview 中返回动态 numberOfItemsInSection
如何在 UICollectionView 中动态调整标题视图的大小?
如何在 UICollectionView 的部分标题中动态添加标签和按钮?