uiscrollview左右滑动怎么判断左右滑动

iOS UITableView(UIScrollView)滑动到底部的判断
iOS UITableView(UIScrollView)滑动到底部的判断
想要判断UITableView滑动到底部,我们需要先了解几个UIScrollView的概念,参照下图:
(1)contentOffset:当前可见视图相对于frame的偏移量,经过实际测试,发现向上滑动contentOffset.y的值不断增加。
(2)frame.size.height:屏幕可见视图的高度。
(3)contentSize.height:UIScrollView实际内容的高度,如上图所示包含虚线区域。
理清这些概念后,再判断滑动到底部就简单了。因为是判断滑动到底部,所以滑动方向向上,即contentOffset.y的值不断增加。当 frame.size.height + |contentOffset.y| &= contentSize.height
时即可判断滑到底部了。对式子做些调整判断条件如下:
contentSize.height -&contentOffset.y &=&frame.size.height
代码实现如下:
[objc] -&(void)scrollViewDidScroll:(UIScrollView&*)scrollView&&{&&&&&&CGFloat&height&=&scrollView.frame.size.height;&&&&&&CGFloat&contentYoffset&=&scrollView.contentOffset.y;&&&&&&CGFloat&distanceFromBottom&=&scrollView.contentSize.height&-&contentY&&&&&&NSLog(@"height:%f&contentYoffset:%f&frame.y:%f",height,contentYoffset,scrollView.frame.origin.y);&&&&&&if&(distanceFromBottom&&&height)&{&&&&&&&&&&&&&&&&&&&&NSLog(@"end&of&table");&&&&&&&&&&&&&&&&}&&}&&
发表评论:
TA的最新馆藏【iOS开发】UIScrollView 看不到内容、UIScrollView 不能滑动 - 简书
下载简书移动应用
写了33014字,被665人关注,获得了580个喜欢
【iOS开发】UIScrollView 看不到内容、UIScrollView 不能滑动
初学者第一次使用 UIScrollView 的时候,很可能会遇到 UIScrollView 滑动不了,或者明明添加了内容,却看不到的问题。这里展示最简洁、最常态化的一种在 UIScrollView 中添加可以滑动的 UIImageView 的案例。
上下文关系:代码中的“tipView”是通过 Storyboard 拖线到代码中绑定的 IBOutlet,已经在 self.view 里面了。
设置 UIScrollView
这里把 imageView 的 contentMode 设置为 AspectFill 来保证 image 可以填满 imageView ,并且长宽比不改变。容易犯的错误是通过 frame 来初始化 imageView,这是不必要也是不应该的。应该设定好你的图片资源的大小,然后直接用图片资源的frame 去设定 imageView 的 frame,当然这一步也是自动的。接下来要确定 UIScrollView 的 contentSize,即它的内容、可滑动范围。这也直接套用的图片资源的 frame。
注意点1:必须保证 UIScrollView 的 contentSize 比它本身的 size要大,否则不可能滑动。
注意点2:现在 imageView 是 UIScrollView 的 subView,所以它的 frame 也是相对 UIScrollView 的,你想要让它和 UIScrollView 刚好一样高,就要把它的 frame 的 y 值设定为0,这也是为什么我推荐你不管这个 y 值,让它自动置为0。假如 UIScrollView 的 y 值为10,你再设定 imageView 的 y 值为10,那么相对于屏幕来说,imageView 的 y 值是20。当它的 y 值大到一定程度,超出了 UIScrollView,你自然就看不到内容了。
更新:如果你的 UIScrollView 老是在你不希望它滚动的方向的滚动,而且里面的 imageView 还有可能错位的话,在 viewDidLoad 方法中加入这句:
self.automaticallyAdjustsScrollViewInsets = false
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
如果你是程序员,或者有一颗喜欢写程序的心,喜欢分享技术干货、项目经验、程序员日常囧事等等,欢迎投稿《程序员》专题。
专题主编:小...
· 146965人关注
· 7120人关注
iOS移动开发相关
· 6286人关注
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&固定UIScrollView滑动的方向
固定UIScrollView滑动的方向
一般而言,我们通过这两个参数CGRectMake以及contentSize就可以自动的让UIScrollView只往一个方向滚动.但我遇到过非常奇葩的情况,那就是即使设置的CGRectMake以及contentSize没有一点点问题,这个UIScrollView也能够上下左右滚动-_-!!.
为了不依赖于CGRectMake以及contentSize,我们可以通过在代理方法scrollViewDidScroll:中进行限制即可.
没有限制之前的效果:
RootViewController.m
Copyright (c) 2014年 Y.X. All rights reserved.
#import "RootViewController.h"
@interface RootViewController ()&UIScrollViewDelegate&
UIScrollView
@implementation RootViewController
- (void)viewDidLoad
[super viewDidLoad];
UIImageView *showImageView = \
[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"长图.jpg"]];
_showView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 50, 320, 100)];
_showView.delegate =
[_showView addSubview:showImageView];
_showView.contentSize = showImageView.frame.
[self.view addSubview:_showView];
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
CGPoint point = scrollView.contentO
point.y = 0.f;
scrollView.contentOffset =
限制后效果:
RootViewController.m
Copyright (c) 2014年 Y.X. All rights reserved.
#import "RootViewController.h"
@interface RootViewController ()&UIScrollViewDelegate&
UIScrollView
@implementation RootViewController
- (void)viewDidLoad
[super viewDidLoad];
UIImageView *showImageView = \
[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"长图.jpg"]];
_showView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 50, 320, 100)];
_showView.delegate =
[_showView addSubview:showImageView];
_showView.contentSize = showImageView.frame.
[self.view addSubview:_showView];
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
CGPoint point = scrollView.contentO
// 限制y轴不动
point.y = 0.f;
scrollView.contentOffset =
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
问题分类 滑动屏幕打开相应功能操作. 问题描述 1.用户手动滑动屏幕,根据滑动的方向,打开相应的功能(如:向上滑摇钱树经验明细,向下滑打开任务明细,向左滑打开聚宝盆物品查看等功能),滑动事件捕获问题. 2.大家都知道,划动都有角度问题,如:向330度方向滑动手机,要计算出它的方向问题. 3.HTML5提供的滑动事件,只能读取到起点和终点坐标,计算角度问题.
UIGestureRecognizerDelegate两三事: -(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {
if([touch.view isKindOfClass:[UISlider cla ...
实际应用的时候因业务需求,需要让ListView(gridview)具有下拉刷新.下拉刷新功能,需要在ScrollView里嵌套ListView PS:关键点-- 自定义ListView,重写其onMeasure方法: @Override / * 重写该方法,达到使ListView适应ScrollView的效果 */ protected void onMea ...
有时候我们需要检测当前UIScrollView的滑动方向来做出相应的处理,可以借助UIScrollView的delegate函数来实现, 下面的例子可以检测到UIScrollview当前是向上滑动还是向下滑动: int _lastP //A variable define in headfile - (void)scrollViewDidSc ...
#pragma mark --#pragma mark --
UIScrollViewDelegate- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
CGFloat pageWidth = mainScrollView.frame.size.
app需要支持两个屏幕方向,其中一些controller是固定竖屏,一些是固定横屏,我试了下stackoverflow中的这种方法,/questions//how-to-force-a-uiviewcontroller-to-portait-orientation-in-ios-6 但还是不管用 ...
rt 不想用scrollview的delegate方法去根据坐标判断,有没有手势或者offset这些方法可以直接获取到tableview的上下滑动方向? 运动的时候才有滑动方向,肯定是要用这些回调的,你可以获取到scrollview的panGestureRecognizer进行使用,可以直接处理手势事件
在android SDK 自带的sample snake,只能通过上下左右方向键控制贪吃蛇的方向, 模拟器上玩没有问题,装到手机后基本玩不了,本着自己丰衣足食的精神,做了点小小的改动, 通过手机屏滑动来控制方向, 主要涉及的类public GestureDetector (GestureDetector.OnGestureListener listener) ...Pages: 1/2
主题 : UIScrollView如何判断是向右滚动还是向左滚动?
级别: 侠客
可可豆: 1234 CB
威望: 1234 点
在线时间: 736(时)
发自: Web Page
UIScrollView如何判断是向右滚动还是向左滚动?&&&
UIScrollView如何判断是向右滚动还是向左滚动?
级别: 精灵王
发帖: 1186
可可豆: 6782 CB
威望: 10091 点
在线时间: 2074(时)
发自: Web Page
contentOffset
级别: 圣骑士
可可豆: 3638 CB
威望: 3638 点
在线时间: 380(时)
发自: Web Page
楼上正解~ 左右的话看contentOffset.x 上下的contentOffset.y
级别: 侠客
可可豆: 1168 CB
威望: 1118 点
在线时间: 339(时)
发自: Web Page
楼主问题解决了吗?
级别: 新手上路
可可豆: 434 CB
威望: 434 点
在线时间: 377(时)
发自: Web Page
回 3楼(xiaobing8217) 的帖子
请问一下 能不能只让scrollview向右滑动??不让他向左运动~
级别: 骑士
UID: 20893
可可豆: 1437 CB
威望: 1437 点
在线时间: 168(时)
发自: Web Page
回 4楼(ellenpage) 的帖子
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
&&if (scrollView.contentOffset.x&0) {
&&&&[scrollView setContentOffset:CGPointMake(0, scrollView.contentOffset.y) animated:NO];
级别: 新手上路
可可豆: 434 CB
威望: 434 点
在线时间: 377(时)
发自: Web Page
回 5楼(hengxin196) 的帖子
您好,谢谢您的热心帮助!代码我也看明白了 ,就是只要向右有偏移,立刻让他复位,可是结果还是没法实现 还是可以两个方向运动,不知道为啥,,.
级别: 骑士
UID: 20893
可可豆: 1437 CB
威望: 1437 点
在线时间: 168(时)
发自: Web Page
回 6楼(ellenpage) 的帖子
设置delegate了吗? 我这样做就没有问题的
级别: 新手上路
可可豆: 434 CB
威望: 434 点
在线时间: 377(时)
发自: Web Page
回 7楼(hengxin196) 的帖子
大侠 还是不行啊~ delegate也设置了 还是不行 截个图麻烦兄弟把你的这部分代码能不能给我参详参详`~~感激不尽~
图片:58E3EFCA-B638--18E73BC98924.png
级别: 骑士
UID: 20893
可可豆: 1437 CB
威望: 1437 点
在线时间: 168(时)
发自: Web Page
回 8楼(ellenpage) 的帖子
delegate设错地方了&&怎么能在回调方法里面设置呀 初始化的时候设置delegate
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
9*6-8 正确答案:46
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版}

我要回帖

更多关于 js判断左右滑动 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信