麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

繪畫板

2019-11-14 18:20:53
字體:
來源:轉載
供稿:網友

知識點:將View上的信息保存到相冊

關于繪制圖形、路線

******************************************

#import <UIKit/UIKit.h>

@interface FFFPaintView : UIView

@PRoperty (nonatomic,strong) UIColor *lineColor;

@property(nonatomic,assign) CGFloat lineWithed;

@property (nonatomic,copy) CGFloat (^lineWithBlock)();

//清屏

-(void)clearScreen;

//回退

-(void)recede;

//橡皮擦

-(void)eraser;

@end

******************************************

#import "FFFPaintView.h"

@interface FFFBezierPath : UIBezierPath

@property (nonatomic,strong) UIColor *lineColor;

@end

@implementation FFFBezierPath

@end

 

@interface FFFPaintView ()

@property (nonatomic,strong) NSMutableArray *paths;

@end

@implementation FFFPaintView

 

-(NSMutableArray *)paths{

 

    if(_paths==nil){

    

        _paths = [NSMutableArray array];

    }

    return _paths;

}

//清屏

-(void)clearScreen{

    

//    注意這里有時候移除全部的時候會出錯,所以為了防止,建議 == nil,即可,然后在重繪

    [self.paths removeAllObjects];

    self.paths = nil;

    //    重繪

    [self setNeedsDisplay];

}

//回退

-(void)recede{

    [self.paths removeLastObject];

    //    重繪

    [self setNeedsDisplay];

}

//橡皮擦

-(void)eraser{

    self.lineColor = self.backgroundColor;

    //    重繪

    [self setNeedsDisplay];

}

 

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

//   獲取觸摸的對象

    UITouch *touch = [touches anyObject];

//    通過觸摸對象獲取手指的位置

    CGPoint point = [touch locationInView:touch.view];  

//    創建路徑對象

    FFFBezierPath *path = [[FFFBezierPath alloc] init];

    [path moveToPoint:point];   

//    設置線的顏色

    path.lineColor = self.lineColor;

 

    if(self.lineWithBlock){

        path.lineWidth = self.lineWithBlock();

    }

//    下面的方法是無法獲取到值的

//    path.lineWidth = self.lineWithed;

//    NSLog(@"%f",self.lineWithed);

    

//    把path添加到數組中

    [self.paths addObject:path];

}

 

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

 

//    獲取觸摸的對象

    UITouch *touch = [touches anyObject];

    CGPoint point = [touch locationInView:touch.view];

    

//    使用數組當中最后一個路徑 來連線

    [[self.paths lastObject] addLineToPoint:point];

    

//    重繪

    [self setNeedsDisplay];

}

 

-(void)drawRect:(CGRect)rect{

//    遍歷所有的路徑渲染

    for (FFFBezierPath *path in self.paths) {

        [path.lineColor set];

        

//        設置樣式

        [path setLineCapStyle:kCGLineCapRound];

        [path setLineJoinStyle:kCGLineJoinRound];

    //    渲染

        [path stroke];

//        NSLog(@"%@",path);

    }

}

 

@end

 

************************************************************************************

 

#import "ViewController.h"

#import "FFFPaintView.h"

@interface ViewController ()

 

@property (weak, nonatomic) IBOutlet FFFPaintView *paintView;

 

@property (weak, nonatomic) IBOutlet UISlider *slider;

 

@property (weak, nonatomic) IBOutlet UIButton *firstButton;

 

@end

 

@implementation ViewController

//- (IBAction)slider:(UISlider *)sender {

//    

//    self.paintView.lineWithed = sender.value;

//    

//}

 

- (IBAction)savePaint {

    

//    開啟圖片類型的上下文

    UIGraphicsBeginImageContextWithOptions(self.paintView.bounds.size, NO, 0);

    

//    獲取當前上下文

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    

//    把當前view的樣式,繪制到上下文當中

    [self.paintView.layer renderInContext:ctx];

    

//    保存到相冊,同時從上下文中獲取圖片

    UIImageWriteToSavedPhotosAlbum(UIGraphicsGetImageFromCurrentImageContext(), nil, nil, nil);

    

//    關閉上下文

    UIGraphicsEndImageContext();

}

 

//清屏

-(IBAction)clearScreen{

    [self.paintView clearScreen];

}

//回退

-(IBAction)recede{

    [self.paintView recede];

}

//橡皮擦

-(IBAction)eraser{

    [self.paintView eraser];

}

 

- (void)viewDidLoad {

    [super viewDidLoad];

    [self.paintView setLineWithBlock:^CGFloat{

        return self.slider.value;

    }];

    self.paintView.lineColor = self.firstButton.backgroundColor;

}

 

- (IBAction)setColorSelected:(UIButton *)sender {

    self.paintView.lineColor = sender.backgroundColor;

}

@end

 

 

************************************************************************************

 

 

 

************************************************************************************

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲午夜久久久精品一区二区三区 | 国产porn在线 | 精品三级内地国产在线观看 | aaaaa国产欧美一区二区 | 大学生一级毛片在线视频 | 日本va在线观看 | 吾色视频| 久久99深爱久久99精品 | 黄色片在线观看网站 | 27xxoo无遮挡动态视频 | 一级网站| 九九视屏 | 国产精品视频一区二区三区综合 | 日本欧美一区二区三区在线观看 | 国产超碰人人爽人人做人人爱 | 久久激情国产 | 国产免费一区二区三区 | 国产亚洲精品久久久久久久久久 | 国产精选电影免费在线观看 | 在线看免费观看av | 欧美成人做爰高潮片免费视频 | 1级毛片在线观看 | 欧美国产一级片 | 91久久久久久久 | 999久久久| 在线观看视频毛片 | 成人做爰高潮片免费视频美国 | 综合精品视频 | 天天天干夜夜夜操 | 中国老女人一级毛片视频 | 久久看免费视频 | 毛片免费视频观看 | 成人午夜影院 | 亚洲aⅴ免费在线观看 | 日韩一级免费毛片 | 色的综合 | 国产一区精品视频 | 欧美一级二级毛片视频 | 黄网站色成年大片免费高 | 日韩视频精品一区 | 免费小毛片 |