0

我有一个带有另一个视图(称为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 是底部视图的高度)在动画块中。我期望发生的是 tableview 向上滑动 250pts,显示bottomView. 奇怪的是,最终发生的事情是表格只向上滑动了一点点(可能是 100 点)并且滑动非常缓慢,大约 5 秒,而我的动画块只有 0.1 秒。

有谁知道为什么会这样?

谢谢

4

1 回答 1

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

于 2013-07-23T04:55:42.413 回答