我試着使用複製擴張的tableview細胞中,這種tutorial使用自動佈局的可擴展表格視圖單元格不起作用?
我會告訴我做了什麼,並指出我錯過什麼嗎?!我被困在這裏。如果您指出我錯過的步驟,這將有所幫助!
TableviewController
class ExpandableCell: UITableViewController {
let titles = ["one" , "two"]
override func viewDidLoad() {
super.viewDidLoad()
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 125
// tableView.tableFooterView = UIView(frame: CGRectZero)
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return titles.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TableCell
cell.title.text = titles[indexPath.row]
cell.indexPath = indexPath
switch expandedIndexPath {
case .Some(let expandedIndexPath) where expandedIndexPath == indexPath:
cell.showsDetails = true
default:
cell.showsDetails = false
}
return cell
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: false)
switch expandedIndexPath {
case .Some(_) where expandedIndexPath == indexPath:
expandedIndexPath = nil
case .Some(let expandedIndex) where expandedIndex != indexPath:
expandedIndexPath = nil
self.tableView(tableView, didSelectRowAtIndexPath: indexPath)
default:
expandedIndexPath = indexPath
}
}
var expandedIndexPath: NSIndexPath? {
didSet {
switch expandedIndexPath {
case .Some(let index):
tableView.reloadRowsAtIndexPaths([index], withRowAnimation: UITableViewRowAnimation.Automatic)
case .None:
tableView.reloadRowsAtIndexPaths([oldValue!], withRowAnimation: UITableViewRowAnimation.Automatic)
}
}
}
}
TableViewCell
class TableCell: UITableViewCell {
@IBOutlet weak var title: UILabel!
@IBOutlet weak var descriptionConstraint: NSLayoutConstraint!
@IBOutlet weak var descriptionNew: UILabel!
// let detailViewDefaultHeight: CGFloat = 44
let lowLayoutPriority: Float = 250
let highLayoutPriority: Float = 999
var showsDetails = false {
didSet {
descriptionConstraint.priority = showsDetails ? lowLayoutPriority : highLayoutPriority
}
}
var indexPath = NSIndexPath()
override func awakeFromNib() {
super.awakeFromNib()
descriptionConstraint.constant = 0
}
}
故事板
這是輸出我得到這不是一個我試圖讓,
設置低和高優先級價值觀,什麼是次問題? –
只顯示標題和說明標籤的表格但未獲得預期輸出! –