亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

分享一個iOS下實現基本繪畫板功能的簡單方法

2020-07-26 03:32:52
字體:
來源:轉載
供稿:網友

代碼部分
TouchView.h

復制代碼 代碼如下:

#import <UIKit/UIKit.h> 
 
@interface TouchView : UIView 

    NSMutableArray *points; 
    NSArray *points_all; 
    CGContextRef context; 
    UIColor *paint_clr; 

@property (strong,nonatomic) NSMutableArray *points; 
@property (strong,nonatomic) NSArray *points_all; 
@property (strong,nonatomic) UIColor *paint_clr; 
 
@end 

TouchView.m

復制代碼 代碼如下:

#import "TouchView.h" 
 
@implementation TouchView 
@synthesize points, points_all, paint_clr; 
 
- (id)initWithFrame:(CGRect)frame 

    self = [super initWithFrame:frame]; 
    if (self) { 
        // Initialization code 
        paint_clr = [UIColor greenColor]; 
    } 
    return self; 

 
// Only override drawRect: if you perform custom drawing. 
// An empty implementation adversely affects performance during animation. 
- (void)drawRect:(CGRect)rect 

    // Drawing code 
    if ((!self.points) || (self.points.count < 2)) { 
        return; 
    } 
       
    context = UIGraphicsGetCurrentContext(); 
    //設置畫筆粗細  
    CGContextSetLineWidth(context, 5.0f); 
    //設置畫筆顏色 
    //[[UIColor blueColor]set ]; 
    // [paint_clr set]; 
    //CGContextSetStrokeColorWithColor(context, [[UIColor blueColor]CGColor]); 
    CGContextSetStrokeColorWithColor(context, [paint_clr CGColor]); 
     
    //畫以前的軌跡 
    for (int j = 0 ; j < [self.points_all count]; j++) { 
        NSMutableArray *points_tmp = [points_all objectAtIndex:j]; 
             
            for (int i = 0;i < [points_tmp count]-1;i++) 
            { 
                CGPoint point1 = [[points_tmp objectAtIndex:i] CGPointValue]; 
                CGPoint point2 = [[points_tmp objectAtIndex:(i+1)] CGPointValue]; 
                CGContextMoveToPoint(context, point1.x, point1.y); 
                CGContextAddLineToPoint(context, point2.x, point2.y); 
                CGContextStrokePath(context); 
            } 
        } 
     
    //畫這次 
    for (int i=0; i < [self.points count]-1; i++) { 
        CGPoint point1 = [[self.points objectAtIndex:i] CGPointValue]; 
        CGPoint point2 = [[self.points objectAtIndex:(i+1)] CGPointValue]; 
        CGContextMoveToPoint(context, point1.x, point1.y); 
        CGContextAddLineToPoint(context, point2.x, point2.y); 
        CGContextStrokePath(context); 
    }     

 
//不支持多點觸摸 
- (BOOL) isMultipleTouchEnabled 

    return NO; 

 
//創建一個array,并且記錄初始ponit 
- (void) touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event 

    self.points = [NSMutableArray array]; 
    CGPoint pt = [[touches anyObject] locationInView:self]; 
    [self.points addObject:[NSValue valueWithCGPoint:pt]]; 

 
//移動過程中記錄這些points 
//調用setNeedsDisplay,會觸發drawRect方法的調用 
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 

    CGPoint pt = [[touches anyObject] locationInView:self]; 
    [self.points addObject:[NSValue valueWithCGPoint:pt]]; 
    [self setNeedsDisplay]; 

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

    NSMutableArray *points_tmp = [[NSMutableArray alloc] initWithArray:self.points]; 
    if (self.points_all == nil) { 
        self.points_all = [[NSArray alloc] initWithObjects:points_tmp, nil]; 
    }else { 
        self.points_all = [self.points_all arrayByAddingObject:points_tmp]; 
    } 

@end 

ViewController.h

復制代碼 代碼如下:

#import <UIKit/UIKit.h> 
 
@class TouchView; 
@interface ViewController : UIViewController 

    TouchView *tv; 

@end 

ViewController.m

復制代碼 代碼如下:

#import "ViewController.h" 
#import "TouchView.h" 
 
@interface ViewController () 
 
@end 
 
@implementation ViewController 
 
- (void)viewDidLoad 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    self.view.userInteractionEnabled = YES; 
     
  // TouchView *tv = [[TouchView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 260.0f, 260.0f)]; 
    tv = [[TouchView alloc]initWithFrame:self.view.frame]; 
    tv.backgroundColor = [UIColor blackColor]; 
     
    [self.view addSubview:tv]; 
     
    UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:[@"White Red Blue Green Yellow" componentsSeparatedByString:@" "]]; 
    seg.segmentedControlStyle = UISegmentedControlSegmentCenter; 
    seg.tintColor = [UIColor blackColor];  
    seg.center = CGPointMake(self.view.center.x, (self.view.bounds.size.height - seg.bounds.size.height));  
    [self.view addSubview:seg]; 
     
    [seg addTarget:self action:@selector(colorChange:) forControlEvents:UIControlEventValueChanged]; 

 
- (void)viewDidUnload 

    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 

 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 

 
- (void) colorChange: (UISegmentedControl *) seg 

    switch ([seg selectedSegmentIndex]) 
    { 
        case 0:  
            tv.paint_clr = [UIColor whiteColor]; 
            break; 
        case 1: 
            tv.paint_clr = [UIColor redColor]; 
            break; 
        case 2: 
            tv.paint_clr = [UIColor blueColor]; 
            break; 
        case 3: 
            tv.paint_clr = [UIColor greenColor]; 
            break; 
        case 4: 
            tv.paint_clr = [UIColor yellowColor]; 
            break; 
        default: 
             
            break; 
    } 

 
@end 

效果圖

20151030100650479.png (320×480)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一区二区视频97| 日韩欧美在线观看视频| 亚洲美女av在线| 国产精品69久久| 亚洲激情在线观看| 精品久久久久久久久中文字幕| 欧美另类极品videosbest最新版本| 亚洲黄页网在线观看| 中文字幕无线精品亚洲乱码一区| www.久久色.com| 欧美日韩亚洲激情| 色偷偷偷亚洲综合网另类| 日韩三级影视基地| 成人中心免费视频| 国产视频丨精品|在线观看| 在线观看国产精品91| 456亚洲影院| 91美女福利视频高清| 全色精品综合影院| 亚洲成人黄色在线| 亚洲男人天堂网站| 97久久精品人人澡人人爽缅北| 国产精彩精品视频| 欧美丰满老妇厨房牲生活| 性色av一区二区咪爱| 美女精品久久久| 69**夜色精品国产69乱| 欧美电影第一页| 欧美噜噜久久久xxx| 亚洲人成网站999久久久综合| 成人激情视频在线| 久久91亚洲精品中文字幕| 日本精品视频在线观看| 精品亚洲一区二区三区四区五区| 亚洲成人久久久久| 亲子乱一区二区三区电影| 国产一区二区精品丝袜| 中文字幕视频一区二区在线有码| 亚洲一区二区三区视频播放| 久久久久久久999精品视频| 国产精品成人久久久久| 中文日韩在线视频| 日韩在线小视频| 黑人巨大精品欧美一区二区三区| 国产精品久久久久久久久久久久| 日韩在线激情视频| 日韩美女中文字幕| 欧美怡红院视频一区二区三区| 久久91超碰青草是什么| 在线观看视频亚洲| 欧美黑人巨大xxx极品| 日韩午夜在线视频| 亚洲第一色中文字幕| 日韩中文字幕免费看| 日韩成人激情影院| 亚洲精品久久久久久久久| 中文字幕亚洲第一| 国产欧美一区二区三区在线| 亚洲xxxx3d| 免费97视频在线精品国自产拍| 中文字幕在线看视频国产欧美在线看完整| 黑人巨大精品欧美一区二区一视频| 日本在线精品视频| 亚洲新中文字幕| 亚洲国产精品va在线| 欧美伦理91i| 国产一区二区免费| 亚洲精品国产欧美| 日韩经典第一页| 亚洲国产精品视频在线观看| 国产在线视频2019最新视频| 欧美激情视频给我| 欧美激情二区三区| 国产精品久久久久福利| 亚洲精品美女在线| 亚洲xxxx妇黄裸体| 成人黄色av免费在线观看| 国产精品亚洲视频在线观看| 中文字幕日韩欧美精品在线观看| 亚洲欧美自拍一区| 91中文精品字幕在线视频| 久久综合国产精品台湾中文娱乐网| 中文日韩在线观看| 久久久999国产精品| 中日韩美女免费视频网站在线观看| 国产成人综合av| 久久久97精品| 国产精品一香蕉国产线看观看| 国产一区二区三区视频| 日韩欧美国产高清91| 性欧美办公室18xxxxhd| 国产精品丝袜一区二区三区| 欧美做受高潮电影o| 91探花福利精品国产自产在线| 中文字幕日韩av| 欧美影院成年免费版| 亚洲天堂网站在线观看视频| 亚洲一区中文字幕在线观看| 日韩成人性视频| 福利视频一区二区| 成人激情视频在线观看| 91精品一区二区| 国产91色在线播放| 成人有码视频在线播放| 国产日产亚洲精品| 成人福利在线观看| 精品无人国产偷自产在线| 欧美视频不卡中文| 国产精品视频公开费视频| 欧美一级视频在线观看| 久久天堂av综合合色| 日韩精品免费综合视频在线播放| 日本一区二区在线免费播放| 国产精品久久久久久久久久久久久久| 亚洲欧美精品中文字幕在线| 亚洲一区免费网站| 日韩欧美国产视频| 奇米四色中文综合久久| 精品美女永久免费视频| 俺去了亚洲欧美日韩| 亚洲欧美一区二区精品久久久| 国产精品一二三在线| 色先锋资源久久综合5566| 清纯唯美亚洲综合| 日本中文字幕不卡免费| 欧美亚洲在线视频| 亚洲自拍av在线| 精品国模在线视频| 国产精品96久久久久久| 亚洲欧美日本伦理| 亚洲综合在线小说| 国产精品色午夜在线观看| 深夜成人在线观看| 久久精品国产综合| 国产成人精品一区二区三区| 日韩精品黄色网| 亚洲国产天堂久久综合网| 亚洲男人第一网站| 日韩中文字幕视频在线观看| 亚洲国产精品专区久久| 26uuu另类亚洲欧美日本老年| 亚洲bt欧美bt日本bt| 日韩视频在线一区| 日韩精品在线免费| 久操成人在线视频| 国产精品网红直播| 亚洲国产精品久久久| 国产99视频精品免视看7| 成人在线视频网站| 国产欧美日韩专区发布| 人体精品一二三区| 欧美日韩第一页| 国内精品久久久久久影视8| 亚洲精品国偷自产在线99热| 精品日本美女福利在线观看| 国产成人精品av在线| 久久久久成人精品| 亚洲成年人影院在线| 成人免费自拍视频| 欧美日韩亚洲国产一区| 日韩精品视频在线免费观看| 国产精品黄色av| 亚洲精品免费av| 精品久久久免费|