1. @property (nonatomic, weak) UIImageView *imageView;
  2. @property (nonatomic, weak) NJImageView *njIv;
  3. @end
  4.  
  5. @implementation NJViewController
  6.  
  7. - (void)viewDidLoad
  8. {
  9. [super viewDidLoad];
  10. // Do any additional setup after loading the view, typically from a nib.
  11. /*
  12. UIImageView *iv = [[UIImageView alloc] init];
  13. iv.image = [UIImage imageNamed:@"me"];
  14. iv.frame = CGRectMake(100, 100, 100, 100);
  15. [self.view addSubview:iv];
  16. self.imageView = iv;
  17. */
  18.  
  19. NJImageView *njIv = [[NJImageView alloc] init];
  20. njIv.image = [UIImage imageNamed:@"me"];
  21. njIv.frame = CGRectMake(, , , );
  22. [self.view addSubview:njIv];
  23. self.njIv = njIv;
  24.  
  25. UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(, , , )];
  26. [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
  27. [btn setTitle:@"点点大家的疯狂的教科书" forState:UIControlStateNormal];
  28. [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
  29. [self.view addSubview:btn];
  30. }
  31.  
  32. - (void)btnClick
  33. {
  34. NSLog(@"btnClick");
  35.  
  36. // 创建一张新的图片替换原有图片
  37. UIImage *image = [UIImage imageNamed:@"psb.jpeg"];
  38.  
  39. // self.imageView.image = image;
  40. self.njIv.image = image;
  41. }
  1. @implementation NJImageView
  2.  
  3. @property (nonatomic, strong) UIImage *image;
  4. - (void)drawRect:(CGRect)rect
  5. {
  6. // Drawing code
  7.  
  8. [self.image drawInRect:rect];
  9. }
  10.  
  11. -(void)setImage:(UIImage *)image
  12. {
  13. _image = image;
  14.  
  15. [self setNeedsDisplay];
  16. }
  17.  
  18. @end

IOS Quartz2D自定义view的更多相关文章

  1. iOS开发UI篇—Quartz2D(自定义UIImageView控件)

    iOS开发UI篇—Quartz2D(自定义UIImageView控件) 一.实现思路 Quartz2D最大的用途在于自定义View(自定义UI控件),当系统的View不能满足我们使用需求的时候,自定义 ...

  2. 详解iOS开发之自定义View

    iOS开发之自定义View是本文要将介绍的内容,iOS SDK中的View是UIView,我们可以很方便的自定义一个View.创建一个 Window-based Application程序,在其中添加 ...

  3. iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解

    iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件.如iOS回顾笔记(02)中的"书" ...

  4. iOS 用xib自定义View

      网上有很多关于实现用xib自定义View,那我为什么还要写呢?第一,我用他们的方法都没有实现.第二,用xib遇到了很多问题,想分享给大家.    用xib自定义View:FHCustomView ...

  5. AJ学IOS(29)UI之Quartz2D自定义下载控件_画各种图形

    AJ分享,必须精品 效果 自定义控件过程 主要过程在上一篇里有介绍了,这里主要介绍下代码实现 先做好要放的view 然后实现呢主要就是四步: 1:获取上下文 2:拼接路径 3:把路径添加到上下文. 4 ...

  6. iOS开发小技巧--获取自定义的BarButtonItem中的自定义View的方法(customView)

    如果BarButtonItem是通过[[UIBarButtonItem alloc] initWithCustomView:(nonnull UIView *)]方法设置的.某些情况下需要修改BarB ...

  7. iOS开发——UI基础-自定义构造方法,layoutSubviews,Xib文件,利用Xib自定义View

    一.自定义构造方法 有时候需要快速创建对象,可以自定义构造方法 + (instancetype)shopView { return [[self alloc] init]; } - (instance ...

  8. iOS开发——UI基础-懒加载,plist文件,字典转模型,自定义view

    一.懒加载 只有使用到了商品数组才会创建数组 保证数组只会被创建一次 只要能够保证数组在使用时才创建, 并且只会创建一次, 那么我们就称之为懒加载 lazy - (void)viewDidLoad 控 ...

  9. iOS 在UITableViewCell中加入自定义view时view的frame设定注意

    由于需要重用同一个布局,于是在cellForRowAtIndexPath中把自定义view加在了cell上,我是这样设定view的frame的 var screenFrame = UIScreen.m ...

随机推荐

  1. LVM使用

    LVM框架 LVM实验环境准备 创建一个128MB的文件模拟磁盘 [centos@centos lvm]$ dd if=/dev/zero of=./disk.img count=128 bs=1MB ...

  2. 转:PHP性能:序——谈ab(Apache Bench)压力测试工具

    PHP性能:序——谈ab(Apache Bench)压力测试工具 ab(Apache  Bench)是啥? ab是Apache自带的一个压力测试软件,可以通过ab命令和选项对某个URL进行压力测试.a ...

  3. 关于CSRF攻击详解

    CSRF的原理以及防范 CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你 ...

  4. 使用poi导出Excel表格,jar包冲突

    HTTP Status 500 – Internal Server Error Type Exception Report Message Handler processing failed; nes ...

  5. CentOS 安装最新的 RabbitMQ 3.7.8

    RabbitMQ依赖Erlang,Erlang又依赖很多包,安装非常麻烦,可以如下操作: RabbitMQ在github上有提供新的erlang包(https://github.com/rabbitm ...

  6. python_sting字符串的方法及注释

    string类型是python内置的类型,无需安装   方法/属性 说明   capitalize()   把字符串的第一个字符改为大写   casefold()   把整个字符串的所有字符改为小写 ...

  7. 如何创建width与height比例固定的元素

    面试题,刚在github上看到的,说说这里面的知识点吧~~ padding-bottom的值,其百分比是根据元素自身的width来算的. padding,在标准盒模型中,width+padding+b ...

  8. Java文件与io——复制文件和转换流

    字节流与字符流的区别 在所有的流操作里,字节永远是最基础的.任何基于字节的操作都是正确的.无论是文本文件还是二进制的文件. 如果确认流里面只有可打印的字符,包括英文的和各种国家的文字,也包括中文,那么 ...

  9. GraphQL实战经验和性能问题的解决方案

    在现在的公司使用GraphQL有一段时间了. 现公司从创立之后的很长一段时间内是纯PHP的技术栈,前端.后端都在PHP代码中糅合在一起.新功能越加越多,页面越来越复杂之后,那些混在在PHP代码中的HT ...

  10. Navicat for mysql远程连接数据库详解(1130错误解决方法)

    用Navicat for mysql连接数据库测试下连接 如果出现1130错误 错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to ...