关于图片加载的一些理解

   一般都知道可以用UIImage *Image=[UIImage imagenamed@""];来初试化一个图片,但是真正的加载还是需要对整个类都需要一定的了解,分清楚了UIImage UIImageView,(void) drawRect(CGRECT )rect,viewDidLoad的区别才能真正的对图片灵活的运用,使一个图片或者由此而伸展开来的一系列东西灵活自如的运用。

   区别:

     1.用途上,UIImage是加载一个图片,而UIImageView是加载一个有图片的视图,虽然都是加载图片,但是一个图片是没有中心center的概念的,而一个视图有,两者的属性都不相同。

     2.方法上:UIImage只需初始化后直接调用函数 drawAtPoint:(CGPoint )point或者drawInRect:(CGRect )rect.就可以画图。而UIImageView是通过加载图片然后再将UIImageView加载在主视图中才使图片显示出来的,具体为:[self addSubView:(UIView *)view],UIImageView继承了UIView所以可以进行加载,加载后就会有显示。

   具体的实现步骤又有很大的区别:

      1。通过UIImage 来加载:由于不通过视图加载,所以不能再Viewcontrol中进行编写代码,所以需要另外创建一个文件设名字为drawimage,由于要显示出来图片,就必须重写drawRect:(CGRect )rect 函数,为此必须继承UIView类,然后就可以进行代码的编写了,drawRect函数是用来画图的,所有的画图步骤都必须在此实现,程序运行时会通过这个函数来加载需要显示的图像,所以在这个函数中可以实现一种动态的加载,可以根据你的意愿去更改显示的内容。加载图片的代码很简单:UIImage *Image=[UIImage imagenamed@""];

[Image drawAtPoint:];这样就完成了代码的编写,但是此时如果你运行程序会发现并没有加载图片,这时为什么呢?我们想一下,这个主要显示的视图他是根据viewControl中的要求来显示的,我们的编写都是在drawimage中,所以当程序加载时,我们所写的代码就没用了,这时就需要很关键的一步了,我们打开nib文件,我们更改一下view的继承类,将其改成drawimage.这时再运行程序就会有显示图片了。通过这些过程我们看到很关键的一步是认清所属的类。

     2。通过UIimageview加载:UIImageView是继承UIViewControl的所以不需要另外去创建文件,直接在viewcontrol中编写,加载视图必须重写viewDidLoad()函数,在此函数我们加载图片,但是viewDidLoad函数不像drawRect()函数,他不是每个时刻都加载,他不是动态的加载,以后的变化需要在变化的时候进行重新的绘制。UIImageView加载图片的方法也很简单:[UIImageView viewWithImage:[UIImage ImageNamed:]];然后让其显示出来:[self addSubView:UIImageView];这样就完成了一个图片的加载,但是如果你想要拖动的效果,利用1方法可以实现,但是会发现这个就不行了,原因就是这不是动态加载,如果想要实现动态加载,可以在相应的函数里面进行对视图的位置更改,从而完成图片的拖动。

    这两种方法就根据不同的场合进行不同的运用了。

   通过对比这两种方法,各有各的优点与弊端。图片的加载还有一种方法就是在IB中加载,那样就不说了。能够理解清楚其中的不同之处,以后就可以灵活的运用图片和其他一些视图了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值