zoukankan      html  css  js  c++  java
  • 关情纸尾-----Quartz2D-模仿系统的UIImageView

    模仿系统的UIImageView

    整体思路:
    我们想要模仿系统的UIImageView,我们必须得要知道系统的UIView怎么用.

    第一种用法
    系统的用法是创建一个UIImageView对象,设置frame,给它传递一个UIImage,再把它添加到一个View上面就可以了.
    可以切换图片.


    第二种用法
    就是在创建的时候直接传递一个UIImage对象,使用initWithImage的方法进行创建一个UImageView的方式
    用这种做法创建出来的UIImageView它的尺寸大小和原始图片的尺寸大小一样大.
    所以我们自己的UIImageView也要具有这些功能.

    实现步骤:
      第一步:新建一个UIView,起名LLImageView.
      第二步:给LLImageView添加一个UIImage属性,供外界传递图片
      第三步:在DrawRect方法当中把传递的图片绘制到View上面
      绘制方法为:[_image drawInRect:rect],绘制的图片尺寸大小和UIView的尺寸大小一样大.
      第四步:重写UIImage属性的set方法,在set方法当中让View重新绘制.目的为了能够办到切换图片.
      第五步:提供一个- (instancetype)initWithImage:(UIImage *)image方法.
      在这个方法当中重写init方法
      在初始化时,让View尺寸和图片的实际大小一样大.
      然后再给UIImage属性赋值.
      这样在绘制图片的时候,显示出来的View已经有尺寸了, 尺寸大小和图片的实际大小一样大.

    具体代码实现:  

      

     1   - (instancetype)initWithImage:(UIImage *)image{
     2      if (self = [super init]) {
     3          self.frame = CGRectMake(0, 0, image.size.width, image.size.height);
     4          _image = image;
     5       }
     6       return self;
     7     }
     8 
     9     
    10  -(void)setImage:(UIImage *)image{
    11       _image = image;
    12       [self setNeedsDisplay];
    13  }
    14           
    15 - (void)drawRect:(CGRect)rect {
    16       [_image drawInRect:rect];
    17  }





  • 相关阅读:
    PHP算法每日一练 双向链表
    Web开发者必备的十大免费在线工具网站
    使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS5.5
    linux服务器状态、性能相关命令
    PHP算法每日一练 单链表
    [转]DELPHI2006中for in语句的应用
    [转]Delphi线程类
    [转]解耦:Delphi下IoC 模式的实现
    [DELPHI]单例模式(singleton) 陈省
    [转][Delphi]解决窗体闪烁的方法
  • 原文地址:https://www.cnblogs.com/Lorraine1/p/4799752.html
Copyright © 2011-2022 走看看