UITapGestureRecognizer 和UIPanGestureRecognizer的使用,触摸和滑动

/**

*  点击了进度条背景

*/

- (IBAction)tapProgressBg:(UITapGestureRecognizer *)sender {

CGPoint point = [sender locationInView:sender.view];

// 切换歌曲的当前播放时间

self.player.currentTime = (point.x / sender.view.width) * self.player.duration;

[self updateCurrentTime];

}

////////////滑动

- (IBAction)panSlider:(UIPanGestureRecognizer *)sender {

// 获得挪动的距离

CGPoint t = [sender translationInView:sender.view];

[sender setTranslation:CGPointZero inView:sender.view];

// 控制滑块和进度条的frame

CGFloat sliderMaxX = self.view.width - self.slider.width;

self.slider.x += t.x;

if (self.slider.x < 0) {

self.slider.x = 0;

} else if (self.slider.x > sliderMaxX) {

self.slider.x = sliderMaxX;

}

self.progressView.width = self.slider.center.x;

// 设置时间值

double progress = self.slider.x / sliderMaxX;

NSTimeInterval time = self.player.duration * progress;

[self.slider setTitle:[self strWithTime:time] forState:UIControlStateNormal];

// 显示半透明指示器的文字

[self.currentTimeView setTitle:self.slider.currentTitle forState:UIControlStateNormal];

self.currentTimeView.x = self.slider.x;

if (sender.state == UIGestureRecognizerStateBegan) {

NSLog(@"UIGestureRecognizerStateBegan");

// 停止定时器

[self removeCurrentTimeTimer];

// 显示半透明指示器

self.currentTimeView.hidden = NO;

self.currentTimeView.y = self.currentTimeView.superview.height - 10 - self.currentTimeView.height;

} else if (sender.state == UIGestureRecognizerStateEnded) { // 手松开

// 设置播放器的时间

self.player.currentTime = time;

NSLog(@"UIGestureRecognizerStateEnded");

// 开始定时器

[self addCurrentTimeTimer];

// 隐藏半透明指示器

self.currentTimeView.hidden = YES;

}

}

时间: 2024-10-11 21:17:14

UITapGestureRecognizer 和UIPanGestureRecognizer的使用,触摸和滑动的相关文章

转向移动webApp开发的前端工程师必要的代码,手机webApp触摸左右滑动切换轮播图片广告

刚进一家新公司,公司专做手机App的,由于公司业务太多,传统的方法开发app成本太高,每个app要开发几个版本,公司有个想法就是做webApp来代替传统app.我是才接触到webApp的美工一枚. 今天给小伙伴们分享一个好东西,webApp轮播效果,支持手机上用手左右滑动的效果,因为手机的触摸事件和PC端用鼠标操作的事件是不同的,所以我就需要针对移动端的设备触摸事件做相应的轮播特效.大家可以去看下易迅的:http://m.yixun.com/t/ 和淘宝的http://m.taobao.com/

使用触摸检测滑动(左,右,上或下)

触摸式滑动是指在特定方向上快速移动手指穿过触摸表面的行为.onswipeJavaScript中目前没有" "事件,这意味着我们可以使用可用的触摸事件来实现一个事件,并且只需在刷卡时定义,即"刷卡". 让我们首先定义何时应该将触摸表面上的移动视为滑动.有在玩两个变量这里-在距离旅行了用户对x或y轴的手指touchstart来 touchend,而且,它花时间.基于这两个因素,我们可以决定该操作是否符合滑动和方向. 有了这个,让我们把想法付诸行动,看看如何检测右键(从左

UI--单行文本水平触摸滑动效果

<代码里的世界> -UI篇 用文字札记描绘自己 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/45115047 [导航] - 单行文本水平触摸滑动效果 通过EditText实现TextView单行长文本水平滑动效果 - 多行文本折叠展开 自定义布局View实现多行文本折叠和展开 1.初衷 最近做应用的时候有用到TextView单行长文本,当文本内容过长时候又想实现触摸水平滑动效果.网上找了很多

简易实现 TextView单行文本水平触摸滑动效果

为了方便查看,已使用markdown编辑形成新博文. 本文Mardown地址 近期做应用的时候实用到TextView单行长文本,当文本内容过长时候又想实现触摸水平滑动效果. 网上找了非常多,都没有看到有效解决方式. 当中,最常见的也是最笨拙滴採用重写TextView并继承实现touch 和 Gesture手势. 后来经提醒发现了事实上最简单的方案: 直接使用 EditText 就好了. 由于edittext须要编辑和移动光标的缘故.使得它是能够水平滑动的.因此我们仅仅须要设置其为透明背景,而且不

web移动端触摸滑动事件

web移动端触摸事件的范例~~~ 注意:1.如果不是内联元素,获取style的属性值前需先赋值~不然为Null. 2.亲测andriod 手机 MX4内置浏览器运行妥妥的~~但是微信浏览器并不支持~原因未找到. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;">

iOS之UITableView带滑动操作菜单的Cell

制作一个可以滑动操作的 Table View Cell 本文翻译自 http://www.raywenderlich.com/62435/make-swipeable-table-view-cell-actions-without-going-nuts-scroll-views 原作者:Ellen Shapiro Apple 通过 iOS 7 的邮件(Mail)应用介绍了一种新的用户界面方案——向左滑动以显示一个有着多个操作的菜单.本教程将会向你展示如何制作一个这样的 Table View Ce

制作一个可以滑动操作的 Table View Cell

Apple 通过 iOS 7 的邮件(Mail)应用介绍了一种新的用户界面方案——向左滑动以显示一个有着多个操作的菜单.本教程将会向你展示如何制作一个这样的 Table View Cell,而不用因嵌套的 Scroll View 陷入困境.如果你还不知道一个可滑动的 Table View Cell 意味着什么,那么看看 Apple 的邮件应用: 可能你会想,既然 Apple 展示了这种方案,那它应该已将其开放给开发者使用了.毕竟,这能有多难呢?但不幸的是,他们只让开发者使用 Delete 按钮—

HTML5 移动端的上下左右滑动问题

在移动端页面上,如果要实现[顶部轮播,手指触摸左右滑动]我的方案是,通过监听滑动,阻止默认事件来完成 div.addEventListener('touchmove',function(event){ event.preventDefault();//阻止浏览器的默认事件 }) 这样,左右滑动可以完成了,但是触摸这个div的时候,页面不能上下滑动了,怎么办? 当touchmove的时候,实时改变window的scrolltop值? 这样会有原生的滑动效果吗? 大家有什么解决方案 问题已经解决了,

DevExpress Carousel 设置水平滑动列表

DevExpress中Carousel控件的应用 Carousel,直译为旋转木马,即旋转视图,可以做为数据的展示或者菜单项. 要实现触摸左右滑动的效果,其实是比较容易的,直接在CarouselPanel上实现MouseDown/MouseUp事件,在后台添加逻辑,判断是否产生了位置移动,从而控制面板向左或者向右移动子项. 下面介绍一下,Carousel具体使用方法: 1.添加一个CarouselItemsControl 2.设置CarouselItemsControl的ItemContaine