我有一個普通的ViewController裏面的UITableView,我想調整tableview的整個高度。調整表格高度後
我通過故事板創建了tableview,並且正在從我的ViewDidLoad
中的API中加載數據。我使用典型的tableview方法設置單元格。
override func viewDidLoad() {
self.loadPerformers()
setupTableView(performersTableView)
}
func setupTableView(tableView: UITableView) {
tableView.dataSource = self
tableView.delegate = self
tableView.estimatedRowHeight = 90
tableView.rowHeight = UITableViewAutomaticDimension
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if tableView == self.performersTableView {
let performerCell = tableView.dequeueReusableCellWithIdentifier("PerformerCell", forIndexPath: indexPath) as! PerformersTableViewCell
let performer = self.performersArray[indexPath.row]
performerCell.performerPic.image = getPerformerImage(performer.english_name)
performerCell.performerName.text = performer.english_name + " " + performer.japanese_name
cell = performerCell
}
return cell!
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var count:Int?
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
tableView.separatorColor = UIColor.clearColor()
tableView.allowsSelection = false
if tableView == self.performersTableView {
count = self.performersArray.count
}
return count!
}
我遇到的問題是tableview在加載數據後保持相同高度。下面我正在加載四個項目,但它只顯示2.桌面視圖高度不會改變。
我已經嘗試了一些東西,其中正在改變的tableview框架的高度在viewWillAppear
:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
let newHeight = self.performersTableView.rowHeight * CGFloat(self.numberOfPerformers)
self.performersTableView.frame = CGRectMake(performersTableView.frame.origin.x, performersTableView.frame.origin.y,
performersTableView.frame.size.width, newHeight)
}
這什麼都不做了,所以我誤解的東西在渲染過程。我如何用我想要的高度重新顯示桌子?
是在故事板/ xib中創建tableview嗎? – Lahav
您是否將numberOfRowsInSection設置爲self.performersArray.count? –
顯示你想要實現的內容,你是否想根據行數改變tableview的高度?或者只是想通過增加一些高度使它看起來像設計? – Tj3n