我有一个带有另一个视图(称为bottomView
)的表视图,作为子视图放置在表视图内容的底部。我想发生的是,当用户在表格视图的最底部时将其拉起时,我想在释放时将表格视图向上滑动,以使bottomView
出现。为此,我实现了委托:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate: (BOOL)decelerate {
[UIView animateWithDuration:0.1 animations:^{
[self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 250, 0)];
}];
}
(250是bottomView的高度)在动画块中。我希望发生的事情是使tableview向上滑动250pt,显示
bottomView
。奇怪的是,最终发生的事情是桌子只滑了一点点(也许是100pts),并且动作非常缓慢,大约5秒钟,而我的动画块只有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