`
01jiangwei01
  • 浏览: 541948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iOS 判断用户触摸屏 画图

    博客分类:
  • IOS
 
阅读更多
//
//  TouchMoveView.m
//  UITouch
//
//  Created by 公开课 on 13-4-21.
//  Copyright (c) 2013年 公开课. All rights reserved.
//

#import "TouchMoveView.h"
#import <CoreGraphics/CGColor.h>

@implementation TouchMoveView
{
    

}
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

/**/
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
    drawImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.jpg"]];
    drawImage.frame = self.frame;
    [self addSubview:drawImage];
    mouseMoved = 0;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    mouseSwiped = NO;
    UITouch *touch = [touches anyObject];
    
    if ([touch tapCount] == 2) {
        drawImage.image = nil;
        return;
    }
    lastPoint = [touch locationInView:self];
    lastPoint.y -= 20;
    
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    mouseSwiped = YES;
    UITouch *touch = [touches anyObject];
    CGPoint currentPoint = [touch locationInView:self];
    currentPoint.y -= 20; // only for 'kCGLineCapRound'
    UIGraphicsBeginImageContext(self.frame.size);
    //Albert Renshaw - Apps4Life
    [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)]; //originally self.frame.size.width, self.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); //kCGLineCapSquare, kCGLineCapButt, kCGLineCapRound
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 20.0); // for size
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0); //values for R, G, B, and Alpha
    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    lastPoint = currentPoint;
    mouseMoved++;
    
    if (mouseMoved == 10) {
        mouseMoved = 0;
    }
    
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    if ([touch tapCount] == 2) {
        drawImage.image = nil;
        return;
    }
    if(!mouseSwiped) {
        
        UIGraphicsBeginImageContext(self.frame.size);
        [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)]; //originally self.frame.size.width, self.frame.size.height)];
        CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); //kCGLineCapSquare, kCGLineCapButt, kCGLineCapRound
        CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 20.0);
        CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0);
        CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
        CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
        CGContextStrokePath(UIGraphicsGetCurrentContext());
        CGContextFlush(UIGraphicsGetCurrentContext());
        drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    }
}
- (void) clear{
    [drawImage setImage:[UIImage imageNamed:@"Writingview.png"]];
}
@end

 

分享到:
评论

相关推荐

    ios应用源码之手写画图 2018128

    综上所述,这个“ios应用源码之手写画图”项目涵盖了iOS开发中的多个核心概念和技术,包括图形绘制、手势识别、层管理和用户交互。通过学习和分析这段源码,开发者不仅可以掌握手写画图的具体实现,还能加深对iOS...

    Unity3D 游戏引擎之IOS触摸屏手势控制镜头旋转与缩放

    雨松MOMO Unity3D 游戏开发系列博文之Unity3D 游戏引擎之IOS触摸屏手势控制镜头旋转与缩放,欢迎大家下载阅读,哇咔咔~~

    IOS 通过时候画图

    手势画图允许用户通过触摸屏幕来绘制图形,提供了丰富的交互体验。在这个过程中,我们可以利用苹果的UIKit框架,特别是`UIPanGestureRecognizer`和`UIGestureRecognizerDelegate`等类来实现这一功能。下面我们将深入...

    万能触摸屏程序

    2. **跨平台**:考虑到市面上存在Windows、Android、iOS等多种操作系统,一个万能的触摸屏程序应该能在这些平台上运行,确保用户无论使用何种设备都能享受到一致的用户体验。 3. **自适应布局**:根据设备的屏幕...

    触摸屏的操作 6410

    触摸屏是一种人机交互界面,它允许用户通过直接触碰屏幕来控制显示的内容。主要有四种类型:电阻式、电容式、红外线式和表面声波式。在智能手机和平板电脑中,最常见的类型是电容式触摸屏。 1. 电阻式触摸屏:由...

    触摸屏界面设计

    3. 适配与优化:针对不同触摸屏设备进行适配,如iOS和Android的系统差异,以及横竖屏切换的处理。 五、测试与迭代 1. 用户测试:通过A/B测试、用户访谈等方式获取反馈,不断优化界面设计。 2. 性能监控:关注应用...

    触摸屏测试软件

    总之,触摸屏测试软件是提升触摸屏设备性能和用户满意度的关键工具,通过全面的测试和分析,它可以有效地确保触摸驱动的正确性和触摸屏的卓越性能。对于任何涉及触摸屏技术的开发和制造企业来说,拥有这样一款强大的...

    ios 画图demo ios 画图demo

    在iOS开发中,画图功能是一项重要的技术,它允许开发者为用户提供丰富的视觉体验。本教程将深入探讨如何在iOS应用中实现画图功能,主要基于`UIBezierPath`和`CALayer`,这两个核心组件是iOS图形编程的关键。 首先,...

    ios-画图Demo.zip

    9. **触控交互**:在自定义绘图应用中,可能需要处理用户的触摸事件来实现动态绘图。可以通过UIResponder链和手势识别器(如UIPanGestureRecognizer)来响应用户的输入。 10. **DrawDemo项目**:这个"DrawDemo"很...

    IOS应用源码——手写画图.zip

    当用户触摸屏幕并移动手指时,手势识别器会发送消息给相应的视图进行处理。 3. **绘图基础**:在`UIBezierPath`中,我们可以创建路径对象,通过添加点和曲线来构建线条。`move(to:)`方法用于开始路径,`addLine(to:...

    手机练字手机触摸屏调用

    在众多的手机应用中,“手机练字”是一种创新的方式,利用触摸屏技术帮助用户提高书写技巧。本篇将详细解析“手机练字手机触摸屏调用”的核心知识点。 首先,我们要了解触摸屏技术。触摸屏是一种人机交互设备,它...

    触摸屏终端软键盘JS虚拟键盘.rar

    此外,"触摸屏终端软键盘JS虚拟键盘"的实现基于Web技术,这意味着它可以跨平台运行,无论是在Windows、Android还是iOS系统上,只要支持Web浏览器,就能轻松集成并使用。这对于开发者来说,大大降低了开发成本,提高...

    触摸屏更人性化,给别人的感觉就是不一样。

    在Windows、Android、iOS等主流操作系统中,都有专门的触摸屏驱动程序支持。这些驱动程序通常由设备制造商提供,以确保触摸屏能与特定的操作系统无缝配合。 以描述中提到的"ETUsbAw4P_6.8.8_CHS"为例,这可能是一个...

    ios-IOS 视频播放器 大小屏切换.zip

    以上就是关于“ios-IOS 视频播放器 大小屏切换”的主要知识点,实际项目中可能还需要结合具体的业务需求和用户体验设计进行调整和优化。通过理解并运用这些技术,开发者可以创建出功能完善且适应性强的视频播放应用...

    触摸屏驱动

    触摸屏驱动是计算机硬件系统中的一个重要组成部分,尤其在现代设备如智能手机、平板电脑以及工业控制设备中扮演着不可或缺的角色。它使得用户可以通过直接接触屏幕来输入指令,提供了一种直观且便捷的人机交互方式。...

    IOS强制横竖屏代码

    在iOS开发中,屏幕方向控制是一项重要的任务,特别是在设计用户界面时。"IOS强制横竖屏代码"这个项目提供了一个跨界面、任意界面自由旋转的解决方案。本文将深入讲解iOS应用如何处理屏幕旋转,以及如何实现横竖屏...

    ios 三种颜色画笔和橡皮擦的画图板demo

    总之,“ios 三种颜色画笔和橡皮擦的画图板demo”涵盖了基本的自定义绘图、触摸事件处理、颜色选择与切换、以及可能的保存与导出功能。开发者可以通过学习这个示例,了解如何在iOS应用中创建一个交互式的画图工具,...

    ios判断App是否安装.

    在iOS开发过程中,有时候我们需要判断用户设备上是否已经安装了某个特定的应用程序。这种需求常见于应用间跳转或推荐安装等场景。本文将详细介绍如何通过自定义URL Scheme的方式实现iOS应用程序之间相互检测是否安装...

Global site tag (gtag.js) - Google Analytics