Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 调整桌面视图高度后_Ios_Swift_Uitableview - Fatal编程技术网

Ios 调整桌面视图高度后

Ios 调整桌面视图高度后,ios,swift,uitableview,Ios,Swift,Uitableview,我在常规ViewController中有一个UITableView,我想调整tableview的整个高度 我通过故事板创建了tableview,并从我的ViewDidLoad中的API加载数据。我使用典型的tableview方法设置单元格 override func viewDidLoad() { self.loadPerformers() setupTableView(performersTableView) } func setupTableView(tableView:

我在常规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高度不变

我尝试了一些方法,其中包括更改
视图中的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高度?或者只是想通过增加一些高度使它看起来像设计?是的。我将把这一点补充到我的问题中。它是在故事板中创建的,但我现在添加了一些设置代码。如果您正在谈论调整每个表视图单元格的高度,请看一下: