重写UIImageView的image属性

简介:

重写UIImageView的image属性

 

效果:

当你重写了UIImageView的image属性后你就会对UIImageView怎么显示图片了如指掌了:)

 

源码:

UIImageView.h  +  UIImageView.m

//
//  LiveImageView.h
//  Progress
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface LiveImageView : UIImageView

@property (nonatomic, assign)  CGFloat  duration;

@end


//
//  LiveImageView.m
//  Progress
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import "LiveImageView.h"

@interface LiveImageView ()

{
    CALayer  *_Layer;
}

@end

@implementation LiveImageView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
        _duration = 0.3f;
        _Layer = self.layer;
    }
    return self;
}

// 重写image的setter与getter方法
@synthesize image = _image;

- (void)setImage:(UIImage *)image
{
    if (_image != image)
    {
        CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath:@"contents"];
        ani.fromValue = (__bridge id)(_image.CGImage);
        ani.toValue   =  (__bridge id)(image.CGImage);
        ani.duration  = _duration;
        _Layer.contents = (__bridge id)(image.CGImage);
        [_Layer addAnimation:ani forKey:nil];
        
        _image = image;
    }
}

- (UIImage *)image
{
    return _image;
}

@end

以下是核心代码:

系统的setter方法绝对是这么写的哦:),亲自测试,因为是backed layer,赋值都是没有显式动画的.

以下地方是改变尺寸的动画代码

目录
相关文章
|
前端开发 JavaScript 搜索推荐
img标签的alt和title有什么不同?媒体查询是什么?原型链和继承的六种实现方式
当图片加载不出来的时候,就会在图片未显示的地方出现一段 alt 设置的属性内容。
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
C#编程-130:Brush的五个继承类
C#编程-130:Brush的五个继承类
262 0
C#编程-130:Brush的五个继承类
|
开发工具
UIView的clipsTobounds属性
UIView的clipsTobounds属性
130 0
UIView的clipsTobounds属性
|
数据采集 前端开发 JavaScript
|
程序员 iOS开发
UIGestureRecognizer类常用属性以及方法
UIGestureRecognizer类常用属性以及方法
121 0
一个重要的类 CALayer
一个重要的类CALayer —— 基本概览(一)一个重要的类CALayer —— 其与UIView的区别(二)一个重要的类CALayer ——主要属性及其在显示图片中的简单应用(三)
783 0
CAShapeLayer 类解析
CAShapeLayer类解析(一) —— 基本概览CAShapeLayer类解析(二) —— 基本使用
810 0
|
C#
WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性
原文:WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性 如果你要自定义一个图片按钮控件,那么如何在主窗体绑定这个控件上图片的Source呢? 我向大家介绍一个用 依赖属性(DependencyProperty) 实现的方法。
2502 0

热门文章

最新文章