ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UI绘图 - Quartz2D:训练营 02(模仿UIimageView | )

2022-03-19 14:02:04  阅读:162  来源: 互联网

标签:02 self UIimageView customedView UI imageView UIImage btn image


1 - Quartz2D 最大的用途在于自定义 View,当系统的 View 不能满足我们使用需求的时候就需要自己绘制 View

2 - 代码示例:使用 Quartz2D 自定义 View,模仿系统的 ImageView

// - QuartsView.h

1 #import <UIKit/UIKit.h>
2 @interface QuartsView : UIView
3 
4 @property(nonatomic,strong)UIImage *image;// 图片
5 
6 @end

// - QuartsView.m

 1 #import "QuartsView.h"
 2 @implementation QuartsView
 3 
 4 - (void)drawRect:(CGRect)rect{
 5     [self.image drawInRect:rect];
 6 }
 7 
 8 // 重写 set 方法完成重绘
 9  -(void)setImage:(UIImage *)image{
10      
11     _image = image;
12     [self setNeedsDisplay];
13  }
14 
15 @end

// - ViewController.m

 1 #import "ViewController.h"
 2 #import "QuartsView.h"
 3 #define SCREEN_WIDTH   [UIScreen mainScreen].bounds.size.width
 4 #define SCREENH_HEIGHT [UIScreen mainScreen].bounds.size.height
 5 @interface ViewController ()
 6 @property(nonatomic,strong)UIImageView *imageView;
 7 @property(nonatomic,strong)QuartsView  *customedView;
 8 @end
 9 @implementation ViewController
10 
11 - (void)viewDidLoad{
12     [super viewDidLoad];
13     self.navigationController.navigationBar.hidden = YES;
14     
15     [self testUIImageView];
16     [self testCustomedView];
17 
18 }
19 
20 // UIimageView:使用系统控件,可直接变更图片
21 -(void)testUIImageView{
22     
23     self.imageView = [[UIImageView alloc] init];
24     self.imageView.image = [UIImage imageNamed:@"11.png"];
25     self.imageView.frame=CGRectMake((SCREEN_WIDTH-160)/2.0, 80, 160, 100);
26     [self.view addSubview:self.imageView];
27     
28     UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake((SCREEN_WIDTH-100)/2.0, 200, 100, 50)];
29     [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
30     btn.tag = 101;
31     [btn setTitle:@"点击切换" forState:UIControlStateNormal];
32     [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
33     [self.view addSubview:btn];
34     
35 }
36 
37 
38 // 自定义绘制:需要重写 set方法,在此方法中完成重绘
39 -(void)testCustomedView{
40     
41     self.customedView = [[QuartsView alloc] init];
42     self.customedView.image = [UIImage imageNamed:@"11.png"];
43     self.customedView.frame = CGRectMake((SCREEN_WIDTH-160)/2.0, 350, 160, 100);
44     [self.view addSubview:self.customedView];
45     
46     UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake((SCREEN_WIDTH-100)/2.0, 470, 100, 50)];
47     [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
48     btn.tag = 102;
49     [btn setTitle:@"点击切换" forState:UIControlStateNormal];
50     [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
51     [self.view addSubview:btn];
52     
53 }
54 
55 
56 -(void)btnClick:(UIButton*)sender{
57 
58     if (sender.tag == 101) {
59         if ([self.imageView.image isEqual:[UIImage imageNamed:@"11.png"]]) {
60             UIImage *image = [UIImage imageNamed:@"33.png"];
61             self.imageView.image = image;
62             return;
63         }
64         UIImage *image = [UIImage imageNamed:@"11.png"];
65         self.imageView.image = image;
66         return;
67     }
68     
69     if ([self.customedView.image isEqual:[UIImage imageNamed:@"11.png"]]) {
70         UIImage *image = [UIImage imageNamed:@"33.png"];
71         self.customedView.image = image;
72         return;
73     }
74     UIImage *image = [UIImage imageNamed:@"11.png"];
75     self.customedView.image = image;
76 
77 }
78 
79 @end

运行效果

 

标签:02,self,UIimageView,customedView,UI,imageView,UIImage,btn,image
来源: https://www.cnblogs.com/self-epoch/p/16026276.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有