UITableView setContentInset大值动画缓慢

时间:2013-07-23 00:08:22

标签: iphone ios cocoa-touch uitableview uiscrollview

我有一个带有另一个视图(称为bottomView)的tableview作为放置在tableview内容底部的子视图。我想要发生的是,当用户在桌面视图的最底部拉起时,在发布时我想要将桌面视图向上滑动以显示bottomView。为此,我实现了委托:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate: (BOOL)decelerate {
    [UIView animateWithDuration:0.1 animations:^{
        [self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 250, 0)];
    }];
}
动画块中的

(250是bottomView的高度)。我期望发生的是桌面视图向上滑250分钟,显示bottomView。奇怪的是,最终发生的事情是桌子只会滑动一点点(可能是100分钟)而且非常缓慢,超过5秒左右,当时我的动画块只有0.1秒。

有人知道为什么会这样吗?

由于

1 个答案:

答案 0 :(得分:1)

试试这个,希望这会有所帮助


  -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
   {
        aTableView.contentInset = UIEdgeInsetsMake(0, 0, 250, 0);
   }
   -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
   {
        UIEdgeInsets insects =  aTableView.contentInset;
        if(insects.top == 0)
         {
            aTableView.contentInset = UIEdgeInsetsMake(0, 0, 250, 0);
            CGSize size = aTableView.contentSize;
            int height = size.height;
             [UIView animateWithDuration:0.2 animations:^{
                 aTableView.contentOffset = CGPointMake(0, height-250);
             }];
             aTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
         }

   }

  -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
  {
      if(!decelerate)
       {
          UIEdgeInsets insects =  aTableView.contentInset;
         if(insects.top == 0)
         {
           CGSize size = aTableView.contentSize;
           int height = size.height;
              [UIView animateWithDuration:0.1 animations:^{
           aTableView.contentOffset = CGPointMake(0, height-250);
              }];
           aTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
         }
      }
  }


根据要求调整contentOffset