要实现点击电池条的时候立即回到页面的顶部的时候注意:
只有当一个主控制器有一个scrollview 并把这个属性设置为yes,其他的scrollview.scrollsToTop = NO 这样才会响应这个事件,原理很简单,如果有2个scrollview,系统根本不知道你需要哪个滚动到最上面 切记!
滑动页面的时候,改变scrollerView 的背景色:
、遵循协议:<UIScrollViewDelegate>、写成私有变量
// 优化页面的拖拽的时候使用
CGFloat _contentOffsetY;
CGFloat _oldContentOffsetY;
CGFloat _newContentOffsetY;、执行方法
#pragma mark—————— 优化页面的拖拽的时候使用(开始)
// 开始拖拽页面
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
_contentOffsetY = scrollView.contentOffset.y;
if (_contentOffsetY <= ) {//确保在向上快拖的时候,底部色值不抖动 scrollView.backgroundColor = K_SET_COLOR_VALUE(K_NAV_BGC);
//NSLog(@"\n\n %s 【_contentOffsetY】= %.2f \n",__FUNCTION__,_contentOffsetY);
}
}
//滚动时候调用该方法(手指离开屏幕后)
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ _newContentOffsetY = scrollView.contentOffset.y; // 滚动
if (_newContentOffsetY > _oldContentOffsetY && _oldContentOffsetY > _contentOffsetY) { // 向上滚动
if (_newContentOffsetY > ) {// 确保,上下抖动的时候,顶部不抖色
scrollView.backgroundColor = K_SET_COLOR_VALUE(K_ROOT_BGC);
} } else if (_newContentOffsetY < _oldContentOffsetY && _oldContentOffsetY < _contentOffsetY) { // 向下滚动
if (_newContentOffsetY < ) {// 确保,上下抖动的时候,底部不抖色 scrollView.backgroundColor = K_SET_COLOR_VALUE(K_NAV_BGC);
//NSLog(@"\n\n %s \n",__FUNCTION__);
} } // 拖拽
if (scrollView.dragging) {
if ((scrollView.contentOffset.y - _contentOffsetY) > 5.0f) { // 向上拖拽 //NSLog(@"\n\n %s 【_newContentOffsetY】 = %.2f \n",__FUNCTION__,_newContentOffsetY);
if (_newContentOffsetY > ) {// 确保,上下抖动的时候,顶部不抖色
scrollView.backgroundColor = K_SET_COLOR_VALUE(K_ROOT_BGC);
} } else if ((_contentOffsetY - scrollView.contentOffset.y) > 5.0f) { // 向下拖拽 if (_newContentOffsetY < ) {// 确保,上下抖动的时候,底部不抖色
scrollView.backgroundColor = K_SET_COLOR_VALUE(K_NAV_BGC);
//NSLog(@"\n\n %s \n",__FUNCTION__);
} }
}
}
// 确实结束减速
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ //NSLog(@"\n\n【_newContentOffsetY】 = %.2f \n",_newContentOffsetY);
if (_newContentOffsetY > ) {//确保在向上快拖的时候,顶部色值不抖动 scrollView.backgroundColor = K_SET_COLOR_VALUE(K_ROOT_BGC);
}
_newContentOffsetY = 0.0f;
}// 完成拖拽(滚动停止时,调用此方法,手指离开屏幕前)
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ _oldContentOffsetY = scrollView.contentOffset.y;}
#pragma mark—————— 优化页面的拖拽的时候使用(结束)