【转载】UIScrollerView滚动方向判断

本文转载自Awei《UIScrollerView滚动方向判断》

PushListView.h

@interface PushListView : UIView<UITableViewDelegate,UITableViewDataSource

{

CGFloat contentOffsetY;

CGFloat oldContentOffsetY;

CGFloat newContentOffsetY;

}

...............................

PushListView.m

//开始拖拽视图

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{

contentOffsetY = scrollView.contentOffset.y;

}

// 滚动时调用此方法(手指离开屏幕后)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

//NSLog(@"scrollView.contentOffset:%f, %f", scrollView.contentOffset.x, scrollView.contentOffset.y);

newContentOffsetY = scrollView.contentOffset.y;

if (newContentOffsetY > oldContentOffsetY && oldContentOffsetY > contentOffsetY) {  // 向上滚动

NSLog(@"up");

} else if (newContentOffsetY < oldContentOffsetY && oldContentOffsetY < contentOffsetY) { // 向下滚动

NSLog(@"down");

} else {

NSLog(@"dragging");

}

if (scrollView.dragging) {  // 拖拽

NSLog(@"scrollView.dragging");

NSLog(@"contentOffsetY: %f", contentOffsetY);

NSLog(@"newContentOffsetY: %f", scrollView.contentOffset.y);

if ((scrollView.contentOffset.y - contentOffsetY) > 5.0f) {  // 向上拖拽

// 隐藏导航栏和选项栏

// [self layoutView];

[_viewController.navigationController setNavigationBarHidden:YESanimated:YES];

//[_viewController.navigationController setToolbarHidden:!hidden animated:YES];

_viewController.tabBarController.tabBar.hidden = YES;

} else if ((contentOffsetY - scrollView.contentOffset.y) > 5.0f) {   // 向下拖拽

// 显示导航栏和选项栏

//[self layoutView];

[_viewController.navigationController setNavigationBarHidden:NOanimated:YES];

//[_viewController.navigationController setToolbarHidden:NO animated:YES];

_viewController.tabBarController.tabBar.hidden = NO;

} else {

}

}

}

// 完成拖拽(滚动停止时调用此方法,手指离开屏幕前)

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

{

// NSLog(@"scrollViewDidEndDragging");

oldContentOffsetY = scrollView.contentOffset.y;

}

时间: 2024-12-12 01:16:44

【转载】UIScrollerView滚动方向判断的相关文章

滚动轴滚动方向判断

开始时的判断代码,通过在滚动函数当中再监听一个滚动函数,然后判断前后的差值来判断是向上滚动还是向下滚动 changeIsDownStatus = () => { const listView = this.listView; const beforeScrollTop = listView.scrollTop; this.listView.addEventListener('scroll', () => { const afterScrollTop = listView.scrollTop;

Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向

很多android应用的下拉刷新都是使用的pulltorefresh这个开源项目,但是它的扩展性在下拉刷新同时又上拉加载更多时会有一定的局限性.查了很多地方,发现这个开源项目并不能很好的同时支持下拉刷新和上拉加载更多.这个组件有个mode的属性,可以设置为both,即上下同时都可拉动.但是只设置这个属性的话,上拉与下拉产生的效果是完全一致的.所以要使用这个开源项目做到下拉刷新并同时可上拉加载更多,就需要在代码中进行一些处理. ==========================pulltoref

ios开发过程中屏幕方向判断的问题

判断屏幕的方法有很多着及仅提供几个我个人认为好用的方案 Landscape 竖屏 Portrait 横屏 最有效的方法是: 在willRotateToInterfaceOrientation:duration: 方法中将方向存储起来: DrviceOrientation = toInterfaceOrientation; 然后在别的方法中使用相应的屏幕的方向 方法一: 直接获取设备的方法:self.interfaceOrientation(此方法已经过期) 方法二: 通过下面的方法: UIDev

UIPanGestureRecognizer上下左右滑动方向判断算法

CGFloat const gestureMinimumTranslation = 20.0; typedef enum :NSInteger { kCameraMoveDirectionNone, kCameraMoveDirectionUp, kCameraMoveDirectionDown, kCameraMoveDirectionRight, kCameraMoveDirectionLeft } CameraMoveDirection; @interfaceViewController

mac鼠标滚动方向自然问题

mac使用鼠标的时候滚轮方向和Windows是相反的.假设不勾选滚动方向自然,那么触摸板使用不爽. 解决的方法: 1.打开http://pilotmoon.com/scrollreverser/,下载Scroll Reverser. 2.将该软件拖动到 应用程序 中. 3.双击打开时候须要在 系统偏好设置 | 安全性与隐私 中,改动同意从 不论什么来源 下载应用程序. 4.Preferences 里面勾上 start at login 和 reverse mouse . 參考: http://w

input 输入速度和方向判断、搜索功能的延迟请求

1.input 输入速度和方向判断 var wxApp = {} wxApp.click = function (str,speed) { var lastInput = { d: "", flag: true, lastTime: 0, twoClickTime:300, init:function (str,speed) { return { isAdd: this.isAdd(str,speed), speedValid:this.two_click(speed) } }, is

移动端滑动方向判断

移动端滑动方向判断,主要是判断利用x,y轴方向的增量,哪个轴增的快,就是哪个方向. 在touchstart中获取初始点,startX, startY; 在touchmove中获取移动点,moveX, moveY 计算两者的差 deltaX = moveX - startX;  deltaY = moveY - startY; 之后累加deltaX和deltaY: distX += Math.abs(deltaX) distY += Math.abs(deltaY) if (distX > dis

mousewheel,DOMMouseScroll判断滚轮滚动方向

firefox使用DOMMouseScroll,其他浏览器使用mousewheel 首先绑定一个滚动事件 //firefox使用DOMMouseScroll,其他浏览器使用mousewheel$(document).bind('mousewheel DOMMouseScroll',mouseScroll); 当滚动时获取wheelDelta值,firefox使用detail:值为下滚3上滚-3,其他浏览器使用wheelDelta:值为下滚-120上滚120,通过判断其值为正或者负即可判断鼠标滚轮

js判断鼠标滚动方向

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta h