我有動態單元的UITableView
。在viewDidLoad
我有NSURLSession
下載一些數據到公用變量someDataArray: [NSString]
。我在我的單元格中使用AutoLayout和UILabel具有約束條件,如this。當視圖加載時,我想看到所有的單元格大小相同(例如:100)。但是,當細胞被竊聽我想改變這種細胞的高度,以高度的尺寸UIlabel
框架 的所以我的代碼如下所示:來自NSURLSession的動態數據的單元行高度
class someVC: UIViewController, UITableViewDelegate
{
var someDataArray: [NSString] = []
var cellTapped = 0
override func viewDidLoad() {
//NSURLSession download to someDataArray[]
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
{
let cell = self.table.cellForRowAtIndexPath(indexPath) as customCellVC
cell.someTextView.text = someDataArray[indexPath.row]
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = self.table.cellForRowAtIndexPath(indexPath) as customCellVC
if(cellTapped == 0) {
cellTapped = 1
table.beginUpdates()
table.endUpdates()
} else {
cellTapped = 0
table.beginUpdates()
table.endUpdates()
}
}
func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat
{
// heightForRowAtIndexPath call first, how to calculate the size of frame uilabel? When it's tapped or not
// how to make all UILabel one size by load but sizetofit by tap on it?
}
}
感謝這個功能。我會嘗試並讓你知道 – 2014-09-25 11:52:35
當你只使用「sizeToFit」時要小心 - 因爲它默認不會在你的框架中使用給定的寬度。您還應該將標籤的框架設置爲計算出的高度。 – derdida 2014-09-25 11:57:35