我有一个普通的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