Search code examples
iosobjective-cuitableviewslidedownslideup

animate slide up and down UIView based on indexPath.row


right now I'm trying to move up and move down an UIView based on roll up or down in UITableView. So, if I rolled up the view, which means indexPath.row will keep incremented; the view will appear slide down until certain position and stopped. Then when I rolled down the table view, which means indexPath.row, decremented; the view will disappear by slide up outside the display view.

Do anyone have any idea what I need to code? Right now I'm just simply able to hide and unhide the view. I need the code for animate it slide up and down.

   mark=indexPath.row;
   flag=flag+1;
   if (flag-mark>1) {
      postBox.hidden=NO;
      flag=indexPath.row;
   }
   else
      postBox.hidden=YES; 

Thanks in advance for your help ^^


Solution

  • If you want to move the view according to the movement of the UITableView, you can calculate the content offset of the UITableView and apply it to your moving view. Declare a ivar of type CGFloat named lastOffset.

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        CGFloat distance = scrollView.contentOffset.y - lastOffset;
        lastOffset = scrollView.contentOffset.y;
    
        [UIView animateWithDuration:0.2 animations:^{
            self.movingView.frame = CGRectOffset(self.movingView.frame, 0.0f, distance);
        }];
    }