0

i'm moving up my tableView (via setting contentOffset) and changing a specific (row no. 1 here ) cell's height at the same time , thats why i'm getting a shaky animation and also tableView restores itself to the default position (which is not desired behavior )

my code :

func keyboardWillShow(notification:NSNotification) {
    let userInfo:NSDictionary = notification.userInfo!
    let keyboardFrame:NSValue = userInfo.valueForKey(UIKeyboardFrameEndUserInfoKey) as! NSValue
    let keyboardRectangle = keyboardFrame.CGRectValue()
    let  duration = (notification.userInfo![UIKeyboardAnimationDurationUserInfoKey] as! Double)

    keyboardHeight = keyboardRectangle.height
    accurateheight = accurateheight - (keyboardHeight + inputToolbar.frame.size.height) // accurateHeight is the desired CGFloat value that i want
    self.tableView.beginUpdates()
    self.tableView.endUpdates()

    let frame = tableView.rectForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0))
    defaultRowHeight = frame.height
    let cgpoint = CGPointMake(0, (CGFloat(-64 + defaultRowHeight)))

        self.tableView.setContentOffset(cgpoint, animated: true) // here i'm moving up my tableView 


}

in my heightForRowAtIndexPath:

    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    if indexPath.row == 0 {
            return  44
    }else {
          return accurate height // cell's height which i'm changing
    }
}

i also tried to update only specific row (the ones that i'm changing height of) like this :

var indexPath = NSIndexPath(forRow: 1, inSection: 0)
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)

but the above didnt worked also sometimes my keyboard was not popping up.

how can i move (scroll up) my tableView and change a cell's height at the same time ?? any clue ?

remy boys
  • 2,928
  • 5
  • 36
  • 65
  • You don't need to say `animateWithDuration`. At the time `keyboardWillShow` is called, you are _already_ in an animation block. `setContentOffset` is _already_ animated. – matt Aug 20 '16 at 19:30
  • okay i'll remove it but problem is updating tableView and moving tableView at the same time , what about that ? @matt – remy boys Aug 20 '16 at 19:31

0 Answers0