ios - Resize TableView Height after -


i have uitableview inside regular viewcontroller , i'd adjust tableview's entire height.

i created tableview through storyboard, , i'm loading data api in viewdidload. set cells in typical tableview method.

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!  } 

the problem i'm having tableview stays same height after loading data. below i'm loading 4 items, it's showing 2. tableview height doesn't change.

enter image description here

i've tried few things, among them changing height of tableview frame in 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) } 

this nothing though, i'm misunderstanding in rendering process. how redisplay table desired height?

i have 2 solutions problem:

  1. if want set height of tableview based on tableview cells. first of when data server reload tableview , after reloading tableview content height of filled tableview using code:

    self.performerstableview.contentsize.height  

    then set height tableview frame.

  2. in design, set fix height of tableview , set reference of constraint , after reloading tableview:

    self.performerstableviewheightreference.constant = self.performerstableview.contentsize.height 

i hope helps you.


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -