UITextView 手势触发 TouchesBegan 函数

UITextView 手势触发 TouchesBegan 函数前几天做了个手势可以改变文章字体大小的功能。开始,在当前view中添加一个UITextView,然后添加-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event函数,可怎么也触发不了,在网上找了些资料,说得也不是很清楚,今天把它总结下。       首先说原因吧,你把UITextView加载到当前view上,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

        前几天做了个手势可以改变文章字体大小的功能。开始,在当前view中添加一个UITextView ,然后添加- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event函数,可怎么也触发不了,在网上找了些资料,说得也不是很清楚,今天把它总结下。


        首先说原因吧,你把UITextView 加载到当前view上,然后在当前文件中写函数(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event,手势触摸时,其实触发的是当前view重构父类的touchesbegan函数,而加载UITextView时,UITextView 其实也有相应的touchesbegan函数,UITextView 继承UIScrollView->UIRespone 。所以说,当你点击UITextView想触发相应手势函数,是做不到了,因为它始终触发的是当前view的手势函数,明白了吧,现在来说做法。


关键步骤:重构UITextView

1、首先你得重现写个类,如MyTextView

#import <UIKit/UIKit.h>

@interface MyTextView : UITextView
@end


#import “MyTextView.h”

@implementation MyTextView

– (id)initWithFrame:(CGRect)frame
{

    self = [super initWithFrame:frame];
    if (self) {

    }
    return self;
}

– (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

}

– (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

}

– (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {

}

– (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

}

@end


2、然后你再在view中添加改UITextView  如:

    MyTextView  *textView = [[MyTextView alloc] initWithFrame:CGRectMake(0, 63, 320, [SettingManager shareInstance].nIphoneHeight – TITLE_HEIGHT – NAV_HEIGHT*2)];
    [self.view addSubview:textView];

这样当你手势触发的时候,就会触发MytextView 中的touchesBegan 函数了,再在相应的手势函数中就可以做相应的操作了。

        最后,如果想要通过手势改变文章字体,图片等,如果文章较长,可能会先会滚动,从而忽略掉手势操作。那你就需要设置下了将canCanelContentTouches 设置为NO, 多点触发multipleTouchEnabled设置为YES,delaysContentTouches设置为NO,后两个必须设置。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164184.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LoadRunner教程(1)-LoadRunner简介与安装

    LoadRunner教程(1)-LoadRunner简介与安装LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。下载及其安装过程参照如下,记住安装成英文…

    2022年5月23日
  • 15.6寸键盘的详细介绍「建议收藏」

    键盘的详细介绍前言:1.对于新手,快速掌握键盘按键的功能,可以方便些2.对于老手,可以了解键盘其他按键的功能。拓展一些知识3.本篇文章是以自己笔记本电脑为例写的,由于不同品牌,不同尺寸,不同操作系统可能存在一些差异。工具:雷神15.6寸笔记本电脑操作系统:Windows10家庭中文版介绍导图:文章介绍导图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n6M7ul7c-1611294020666)(https://gitee.com/lh-greenbir

    2022年4月14日
  • 利用模板导出文件(一)之XLSTransformer导出excel文件

    利用模板导出文件(一)之XLSTransformer导出excel文件由于现在好多公司都在实行办公无纸化操作,所以一般都是使用excel以及word来办公,本文是公司项目中使用excel文件模板生成对应的文件:首先,需要导入一下几个包:接下来就是具体的代码:importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Has

    2022年7月24日
  • 自动化测试——unittest框架

    自动化测试——unittest框架自动化测试——unittest框架文章目录自动化测试——unittest框架unittest一、TestCase(测试用例)二、TestSuite(测试套件)和TestRunner(测试执行)三、TestLoader(测试加载)四、Fixture(测试夹具)4.1方法级别4.2类级别五、断言六、跳过七、数据驱动(unittestddt)八、测试报告8.1自带测试报告8.2生成第三方测试报告unittest1、什么是Unittest框架? python自带一种单元测试框架2、为什么使用Un

    2022年10月14日
  • ClearCase 与配置管理

    ClearCase 与配置管理

    2021年8月25日
  • pycharn激活2021破解方法

    pycharn激活2021破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号