当前位置: 首页 > news >正文

网站上的通话功能怎么做营销方式都有哪些

网站上的通话功能怎么做,营销方式都有哪些,网站注册费,做搜狗手机网站优化软IOS中我们可以通过UITouch进行触摸事件监听#xff0c;但是UITouch实现捏合、旋转、长按等手势事件监听非常麻烦。IOS中提供 UIGestureRecognizer 的子类帮我们简洁等实现捏合、旋转等特殊手势监听。并且一个视图可添加多个不同等手势监听器。 开启userInteractionEnabled IOS… IOS中我们可以通过UITouch进行触摸事件监听但是UITouch实现捏合、旋转、长按等手势事件监听非常麻烦。IOS中提供 UIGestureRecognizer 的子类帮我们简洁等实现捏合、旋转等特殊手势监听。并且一个视图可添加多个不同等手势监听器。 开启userInteractionEnabled IOS 中UIView 默认是不可响应事件的我们需要开启 userInteractionEnabled 方可进行事件响应。下面代码中我们创建了一个图片视图并且开始事件响应。UIView 通过 addGestureRecognizer 进行添加手势监听器和 removeGestureRecognizer删除手势监听器 // 创建图片视图 - (void) creareImg {UIImage* image [UIImage imageNamed:zz.jpeg];_imageView [[UIImageView alloc] initWithImage:image];UIScreen* screen [UIScreen mainScreen];const int width 200;const int height 100;const float x screen.bounds.size.width / 2 - width / 2;const float y screen.bounds.size.height / 2 - height;_imageView.frame CGRectMake(x, y, width, height);_imageView.userInteractionEnabled YES;[self.view addSubview:_imageView]; }了解UIGestrueRecognizer 在开始使用自定义手势之前我们先了解一下 UIGestrueRecognizer 的因为自定义都是基于 UIGestrueRecognizer 继承实现的。 UIGestrueRecognizer 是一个手势监听器它可以设置多个手指同时触发触发事件等行为。它具有代理协议 UIGestureRecognizerDelegate 下面我来看一下它主要的属性和API、代理方法。 属性 名称类型说明默认值stateUIGestureRecognizerState当前手势状态可分为手势开始手势改变手势结束等等enabledBOOL是否启用YESviewUIView手势监听的视图requiresExclusiveTouchTypeBOOL是否忽略其他手势类型设置为YES将只响应一种手势类型NOnumberOfTouchesNSUInteger多少根手指触发手势1 API - (instancetype)initWithTarget:(nullable id)target action:(nullable SEL)action 初始化并添加事件监听函数- (void)addTarget:(id)target action:(SEL)action 添加事件监听函数- (void)removeTarget:(nullable id)target action:(nullable SEL)action 删除事件监听函数- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer 添加其他手势冲突失效器当触发当前手势时指定的手势将失效。- (CGPoint)locationInView:(nullable UIView*)view 获取相对于指定视图的坐标位置- (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(nullable UIView*)view 获取指定手指相对指定视图的坐标位置 代理协议 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 手势准备开启时候触发返回NO则取消手势。 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 当手势与其他手势同时发生识别时候触发返回YES运行两个手势同时进行返回NO则阻止同时识别。 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 是否给事件接收手指。在手势开始触发事件触发前触发返回NO可以阻止事件获取触摸的手指。 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceivePress:(UIPress *)press 是否给按下事件接收手指在按下手势事件触发前触发。返回NO可阻止事件获取触摸的手指。 我们了解清除GestureRecognizer 类下面我们来了解其子类手势的使用。 UITapGestureRecognizer 点击手势 点击手势可设置手指数量、点击次数触发的手势 // 创建点击手势 - (void) createTapGes {_imageView.userInteractionEnabled YES; // 开启响应事件属性UITapGestureRecognizer* tapOneGes [[UITapGestureRecognizer alloc] initWithTarget:self action:selector(big)]; // 创建手势tapOneGes.numberOfTapsRequired 1; // 触发事件的点击次数tapOneGes.numberOfTouchesRequired 1; // 触发事件的手指数量[_imageView addGestureRecognizer:tapOneGes]; // 添加手势监听器 } // 点击触发事件 - (void) big {UIScreen* screen [UIScreen mainScreen];[UIView beginAnimations:nil context:nil]; // 开始布局动画_imageView.frame CGRectMake(0, 0, screen.bounds.size.width, screen.bounds.size.height);[UIView commitAnimations]; // 结束布局动画 }UIPinchGestureRecognizer 捏合手势 捏合手势表示双指捏合缩放的手势触发。常用于对图片查看缩放事件监听 // 捏合手势 - (void) createPinchGes {UIPinchGestureRecognizer* pinch [[UIPinchGestureRecognizer alloc] init]; // 创建手势[pinch addTarget:self action:selector(scale:)]; // 添加事件函数pinch.delegate self; // 设置代理[_imageView addGestureRecognizer:pinch]; // 视图添加手势监听器 }- (void) scale: (UIPinchGestureRecognizer*) pinch {UIView* IView pinch.view; // 获取监听的视图CGAffineTransform transiform CGAffineTransformScale(IView.transform, pinch.scale, pinch.scale); // 计算缩放后的矩阵if (transiform.a 0.4) { // 缩放小于0.4阻止transiform.a 0.4;transiform.d 0.4;}IView.transform transiform; // 重新设置矩阵pinch.scale 1; // 重置缩放矩阵否则手势会一直累加 }// 添加允许多个手势触发代理函数 - (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {return YES; }上面代码中我们通过获取捏合手势的scale 属性获取用户捏合缩放的大小。并且使用内置api CGAffineTransformScale 重新计算了视图的2D矩阵矩阵表示图像变形可以了解一下图形学注意最后一步中必须重置手势的scale 否则会一直累加导致计算矩阵错误如果不想重置的话那就需要修改 CGAffineTransformScale的第一个参数为基础矩阵参数。 UIRotationGestureRecognizer 旋转手势 旋转手势可获取用户手指旋转的角度。 // 旋转手势 - (void) createRotateGes {UIRotationGestureRecognizer* rotate [[UIRotationGestureRecognizer alloc] init];[rotate addTarget:self action:selector(rotate:)];rotate.delegate self;[_imageView addGestureRecognizer:rotate]; } // 旋转触发事件 - (void) rotate: (UIRotationGestureRecognizer*) rotate {UIView* IView rotate.view;IView.transform CGAffineTransformRotate(IView.transform, rotate.rotation); // 重新计算视图矩阵rotate.rotation 0; }UIPanGestureRecognizer 平移手势 平移动手势比较简单就是手指移动时候触发但是提供平移的位置和平移的速度 // 平移手势 - (void) createPanGes {UIPanGestureRecognizer* pan [[UIPanGestureRecognizer alloc] initWithTarget:self action:selector(pan:)];pan.delegate self;[_imageView addGestureRecognizer:pan]; } - (void) pan: (UIPanGestureRecognizer*)pan {CGPoint speed [pan velocityInView:_imageView]; // 获取移动速度NSLog(x速度 %f, y速度 %f, speed.x, speed.y);CGPoint translation [pan translationInView:_imageView]; // 获取移动矩阵CGAffineTransform transform CGAffineTransformTranslate(_imageView.transform, translation.x, translation.y);_imageView.transform transform; }UILongPressGestureRecognizer 长按手势 长按对应视图触发手势可设置手指数量和手指长按时间 // 长按手势 - (void) createLongPassGes {UILongPressGestureRecognizer* longPass [[UILongPressGestureRecognizer alloc] initWithTarget:self action:selector(pass:)];longPass.minimumPressDuration 1; // 设置长按触发时间默认0.5[_imageView addGestureRecognizer: longPass]; }- (void)pass: (UILongPressGestureRecognizer*) longPass {if (longPass.state UIGestureRecognizerStateBegan) {NSLog(开始长按);} else if (longPass.state UIGestureRecognizerStateEnded) {NSLog(结束长按);} else if (longPass.state UIGestureRecognizerStateChanged) {NSLog(长按发生改变);} }UISwipeGestureRecognizer 轻滑手势 轻滑手势类似我们的平移手势。但是轻滑不同的是在用户快速滑动时候速度并且只提供滑动方向。 // 创建轻滑手势 - (void) createSwipe {UISwipeGestureRecognizer* swipe [[UISwipeGestureRecognizer alloc] initWithTarget:self action:selector(swiper:)];swipe.direction UISwipeGestureRecognizerDirectionDown;[_imageView addGestureRecognizer: swipe];swipe.delegate self; }- (void) swiper: (UISwipeGestureRecognizer*)swiper {NSLog(发生向下滑动); }
http://www.sadfv.cn/news/55043/

相关文章:

  • 打渔网站建设天津市建设厅注册中心网站
  • 上饶市建设局培训网站安卓手机app开发软件下载
  • 西安网站建设查派全球十大跨境电商平台排行榜前十名
  • 国内网站排名企业网络拓扑图的设计方案
  • 如何搭建门户网站wordpress加导航菜单
  • 微网站建设多少钱新会网站设计
  • 怎么做qq刷赞网站舆情分析报告
  • wordpress展示型外贸网站界面设计模式
  • 网站建设费一般多少网站浏览器
  • 网站不收录织梦cms 学校网站模板
  • 湖北交投建设集团集团网站莱芜金点子广告电子版2022最新
  • 怎么创建一个网站卖东西手工制作大全 简单易学
  • 哪些网站专门做细胞的如果给公司网站做网络广告
  • 营销型企业网站名词解释qq群排名优化软件官网
  • 国内net开发的网站建设企业网站设计方式有哪些
  • wordpress 下载页插件南宁百度首页优化
  • 郓城县住房和建设局网站微信开放平台官网登录
  • 巩义便宜网站建设费用网站本地可以打开
  • 做网站需要物流信息端口金数字网站建设
  • 搭建什么网站最赚钱网页设计架构
  • 学做家常菜的网站开网店在线咨询
  • 一级a做爰片阿v祥仔网站深圳网站建设sz886
  • 哪些网站做夜场女孩多久久建筑网企业
  • 网站开发有哪些软件微趋道小程序免费注册
  • 江苏省建设厅网站施工员证查询广州餐饮品牌设计公司
  • 沈阳做网站公司哪家好展厅布局设计平面图
  • 酷炫的网站模板免费下载溆浦县建筑公司网站
  • 深圳市建设工程网站网站建设相关关键词
  • 河北邯郸专业网站建设wordpress多媒体
  • 去百度建网站厦门关键词排名优化