- 1、设置动画
// 1)添加imageView
UIImageView *imageView = [[UIImageView alloc]
initWithFrame:self.bounds];
// 2)动画照片数组
NSMutableArray*arrM = [NSMutableArrayarray];
for (inti = 1; i < 9;i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i]];
[arrM addObject:image];
}
// 3)给照片数组赋给imageView的动画数组
imageView.animationImages = arrM;
// 4)设置动画播放属性
imageView.animationRepeatCount =1;
imageView.animationDuration =0.5;
// 5)开始动画
[imageView startAnimating];
[self addSubview:imageView];
-
2、将图片按原始尺寸添加到ImageView上
-
1)storyboard或xib中实现:
在imageView的Mode属性中设置center; -
2)在图片中实现:
1】
Snip20150827_4.png
2】
Snip20150827_5.png
3】在render As中选择Original Image即可
Snip20150827_7.png -
3)代码实现:
// 调用UIImage的对象方法---设置UIImageRenderingMode参数为:UIImageRenderingModeAlwaysOriginal - (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode; // 示例:如果一个项目中多处用到以上方法:即将图片按原尺寸添加,可以给UIImage添加一个分类: // 1】.h文件 @interface UIImage (Image) // 快速的返回一个最原始的图片 + (instancetype)imageWithOriRenderingImage:(NSString *)imageName; @end // 2】.m文件 #import <UIKit/UIKit.h> #import "UIImage+Image.h" @implementation UIImage (Image) + (instancetype)imageWithOriRenderingImage:(NSString *)imageName { UIImage *image = [UIImage imageNamed:imageName]; // UIImageRenderingModeAlwaysOriginal--保持原始图片模式 return[image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; } @end
-
- 3、将小图片拉伸填充ImageView---并保证拉伸后的像素与之前一样
- 1)图片中实现:
1】
![Snip20150827_4.png](https://img.haomeiwen.com/i739097/bcaf1594a594aa38.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2】
![Snip20150827_5.png](https://img.haomeiwen.com/i739097/301ecd7bce15cba7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3】在Slices中选择Horizontal and Vertical即可
![Snip20150827_8.png](https://img.haomeiwen.com/i739097/5e2e6c8238da549f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 2)代码实现:
```objc
// 调用UIImage的对象方法---设置UIImageRenderingMode参数为:UIImageRenderingModeAlwaysOriginal
- (UIImage *)stretchableImageWithLeftCapWidth: topCapHeight: ;
// 示例:如果一个项目中多处用到以上方法:即将图片图片拉伸添加,可以给UIImage添加一个分类:
// .h 文件
#import <UIKit/UIKit.h>
@interface UIImage (ICKImage)
+ (UIImage *)imageWithStretchableImageName:(NSString *)imageName;
@end
// .m 文件
+ (UIImage *)imageWithStretchableImageName:(NSString *)imageName
{
UIImage *image = [UIImage imageNamed:imageName];
/*
* LeftCapWidth:图片水平拉伸的点,设为0.5,即是从水平中点拉伸
* topCapHeight:图片竖直拉伸的点,设为0.5,即是从竖直中点拉伸
*/
return[image stretchableImageWithLeftCapWidth:0.5topCapHeight:0.5];
}
- 4、将矩形图片截成圆角图片:图层方法和绘画方法
- 利用图层实现:
// 设置头像圆角半径
self.titleImage.layer.cornerRadius =self.titleImage.frame.size.width*0.5;
//切除圆角以外部分
self.titleImage.layer.masksToBounds= YES;
//设置圆角边缘宽度(如果不需要边缘,可省略)
self.titleImage.layer.borderWidth= 8;
//设置边框颜色
self.titleImage.layer.borderColor= [UIColorcolorWithRed:36/225.0green:36/225.0blue:36/225.0alpha:1].CGColor;
- 2)利用绘画实现
// 给image添加一个圆角图片方法
-(UIImage*)circleImage
{
// 开启图片上下文
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0);
// 获取图片上下文
CGContextRefctx = UIGraphicsGetCurrentContext();
// 给上下文添加一个圆
CGRect circle =CGRectMake(0,0, self.size.width,self.size.height);
CGContextAddEllipseInRect(ctx, circle);
// 剪切图片上下文
CGContextClip(ctx);
// 将图片画至剪切的上下文
[self drawInRect:circle];
// 从上下文获取图片
UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
// 关闭上下文
UIGraphicsEndImageContext();
return image;
}
特别提醒:
虽然图层比绘画实现起来简单,但是通过图层设置时,系统内部会进行一系列的底层操作,从而会导致内部运行不流畅,尤其是多个控件的图片通过图层设置成圆角图片。
建议:
1、涉及较少量的图片进行圆角图片设置时,可运用图层设置;
2、如果是很多图片进行圆角图片设置时,最好使用绘画,不会太消耗内部资源。
网友评论