UITableView setContentInset 大值动画慢

Posted

技术标签:

【中文标题】UITableView setContentInset 大值动画慢【英文标题】:UITableView setContentInset large value animates slowly 【发布时间】:2013-07-23 00:08:21 【问题描述】:

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

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

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

【讨论】:

感谢您抽出宝贵时间回答我的问题。不幸的是,这对我的 tableview 没有明显影响。 你是否将bottomView添加到表格页脚视图中 我根据您在用户向上或向下滚动后提到的内容进行了修改,您希望始终显示该底部视图仪式。我对此进行了检查,我在表格页脚视图中添加了一个高度为 250 像素的视图,当用户向上滚动时它会完美滚动。

以上是关于UITableView setContentInset 大值动画慢的主要内容,如果未能解决你的问题,请参考以下文章

UItableview 单元格的动态高度与 UItableview 单元格内的 UItableview

UITableView

水平 UITableView 中的垂直 UITableView

如何与重叠显示的 UITableView 交互另一个 UITableView

在 UITableView 中的 UINib 中重新加载 UITableView

iOS小技能:1. 什么是UITableView? 2. UITableView如何展示数据