Ios 调整桌面视图高度后
我在常规ViewController中有一个UITableView,我想调整tableview的整个高度 我通过故事板创建了tableview,并从我的Ios 调整桌面视图高度后,ios,swift,uitableview,Ios,Swift,Uitableview,我在常规ViewController中有一个UITableView,我想调整tableview的整个高度 我通过故事板创建了tableview,并从我的ViewDidLoad中的API加载数据。我使用典型的tableview方法设置单元格 override func viewDidLoad() { self.loadPerformers() setupTableView(performersTableView) } func setupTableView(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高度不变
我尝试了一些方法,其中包括更改视图中的tableview框架的高度将出现:
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)
}
但这并没有什么作用,所以我在渲染过程中误解了一些东西。如何重新显示具有所需高度的桌子?我有两种解决方案:
如果要基于Tableview单元格设置Tableview的高度。
所以,首先,当您从服务器获取数据时,请重新加载Tableview,重新加载Tableview后,您将使用以下代码获得填充Tableview的内容高度:
self.performersTableView.contentSize.height
然后将此高度设置为tableview框架
在设计中,设置tableview的固定高度,设置约束的参照,重新加载tableview后:
self.performersTableViewHeightReference.constant = self.performersTableView.contentSize.height
我希望这对您有所帮助。对于您的问题,我有两种解决方案:
[self.theTableView setNeedsLayout];
[self.theTableView layoutIfNeeded];
如果要基于Tableview单元格设置Tableview的高度。
所以,首先,当您从服务器获取数据时,请重新加载Tableview,重新加载Tableview后,您将使用以下代码获得填充Tableview的内容高度:
self.performersTableView.contentSize.height
然后将此高度设置为tableview框架
在设计中,设置tableview的固定高度,设置约束的参照,重新加载tableview后:
self.performersTableViewHeightReference.constant = self.performersTableView.contentSize.height
我希望这对你有帮助
[self.theTableView setNeedsLayout];
[self.theTableView layoutIfNeeded];
将此代码添加到setupTableView
中,numberofrowsin部分
是数据计数。如果要根据内容扩展单元格,请在cellforrowatinexpath
中编写代码:cell.detailtextlab.numberOfLines=0代码>
将此代码添加到setupTableView
中,numberofrowsin部分
是数据计数。如果要根据内容扩展单元格,请在cellforrowatinexpath
中编写代码:cell.detailtextlab.numberOfLines=0代码>是否在情节提要/xib中创建了tableview?是否将numberOfRowsInSection设置为self.performersArray.count?显示要实现的功能,是否要根据行数更改tableview高度?或者只是想通过增加一些高度使它看起来像设计?是的。我将把这一点补充到我的问题中。它是在故事板中创建的,但我现在添加了一些设置代码。如果您正在谈论调整每个表视图单元格的高度,请看一下:是否在情节提要/xib中创建了tableview?是否将numberOfRowsInSection设置为self.performersArray.count?显示您想要实现的目标,是否基于行数更改tableview高度?或者只是想通过增加一些高度使它看起来像设计?是的。我将把这一点补充到我的问题中。它是在故事板中创建的,但我现在添加了一些设置代码。如果您正在谈论调整每个表视图单元格的高度,请看一下: