文档章节

ios 学习之Touch

烦恼豆浆粉
 烦恼豆浆粉
发布于 2014/08/17 15:34
字数 352
阅读 27
收藏 0

Touch事件,即鼠标处理事件,常用的有四种:

1.触摸开始

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

2.触摸取消

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

3.触摸结束

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

4.触摸移动

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

5.多点触摸,要进行如下设置

    [self.view setMultipleTouchEnabled:YES];


一个简单的小应用:视图随鼠标移动的简单动画

@interface ViewController ()
            
@property (nonatomic, strong) UIView *animationView;
@end

@implementation ViewController
            
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSLog(@"%d", [_animationView retainCount]);

    _animationView = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 100, 100)];
    NSLog(@"%d", [_animationView retainCount]);
    [_animationView setBackgroundColor:[UIColor lightGrayColor]];
    [self.view addSubview:_animationView];
}

//点击开始
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    //获取touch事件
    UITouch *touch = [touches anyObject];
    
    //获取触摸点的坐标
    CGPoint touchPoint = [touch locationInView:self.view];
    
    [_animationView setCenter:touchPoint];
}

//点击结束
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{
    NSLog(@"cancelled");
}

//触摸结束
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    NSLog(@"ended");
}

//鼠标开始移动
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    NSLog(@"moved");
    UITouch *touch = [touches anyObject];
    
    //获取触摸点的坐标
    CGPoint touchPoint = [touch locationInView:self.view];
    
    //    NSLog(@"x:%.1f y:%.1f", touchPoint.x, touchPoint.y);
    //获取灰色视图
    //思路:animationView是self.view的子视图,就可以通过self.view得到他本身的子视图,从而得到animationView
    NSLog(@"subviews count %ld", (unsigned long)[[[self view] subviews]count]);
    //1.获取self.view的所有子视图
    NSArray *allSubViewsArray = [[self view] subviews];
    
    //2.获取灰色的视图
    UIView *grayView = (UIView *)[allSubViewsArray lastObject];
    
    //3.改变灰色视图的坐标
    [grayView setCenter:touchPoint];
}
@end


© 著作权归作者所有

烦恼豆浆粉
粉丝 2
博文 13
码字总数 6094
作品 0
北碚
私信 提问
iOS 7 开发:设置 Xcode 5 和 iOS 7 SDK

对新的iOS开发者,改变是好的 正如我之前的文章所提及的, iOS 7 代表的不止是苹果改变他们的移动设备的UI;它也代表了对延缓学习怎样开始建立原生iOS应用的开发者的一个机会. iOS 7 是最新的...

oschina
2013/06/19
11K
0
iOS 7 正式版发布:全新设计、全新功能

经过漫长的等待,全新设计的iOS 7终于发布了!用户可以通过iTunes或OTA升级至全新的iOS 7.0。iOS 7拥有全新设计的界面和功能。也是自iPhone发布后,苹果移动操作系统变化最大的一次改变。 iO...

oschina
2013/09/19
6.3K
24
iOS开发值苹果手机各种尺寸详细表以及iPhoneX、iPhoneXS、iPhoneXR、iPhoneXSMax屏幕适配

iPhone设备 物理分辨率是硬件所支持的,逻辑分辨率是软件可以达到的。 如图所示: Tips: 最终发现iPhone5和6一个小秘密,它们的比例是不变的 iPod设备

坤宇
03/28
0
0
苹果iOS的八年:如何一步步爬到了这么高

电脑需要操作系统,手机也需要,2007 年,苹果带着旗下第一款智能手机 iPhone 和第一款操作系统亮相,从而奠定了改变世界的基础。8 年时间以来,iPhone 一直在不停的进化、演变,iOS 操作系统...

oschina
2015/09/08
4.1K
22
苹果发布 iOS 9.3.3 正式版和 iOS 10 beta 3 测试版

苹果今天发布了 iOS 9.3.3 正式版,iOS 9.3.3 从5月23日开始测试,一共有5个测试版。对于 iOS 9 用户来说,可以通过 OTA 或者 iTunes 完成升级。iOS 9.3.3 主要改进系统底层性能,并修复 Bu...

oschina
2016/07/19
2.7K
6

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
今天
10
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
23
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
9
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部