我有一个带有另一个视图(称为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秒。
有人知道为什么会这样吗?
由于
答案 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