iOS开发-图片UIImage
UIImage 和 UIImageView 是 iOS 开发中常用的两个类,分别用于表示图像数据和表现图像。UIImage
UIImage 是一个表示图像数据的类,可以从文件、数据、图像资源库等加载图像。UIImage 支持多种图像格式,包括 PNG、JPEG、GIF 等。
创建 UIImage
[*]从文件创建
UIImage *image = ;
[*]从数据创建
NSData *imageData = ;
UIImage *image = ;
[*]从 URL 创建
NSURL *imageUrl = ;
NSData *imageData = ;
UIImage *image = ;
[*]从颜色创建
UIColor *color = ;
CGSize size = CGSizeMake(100, 100);
UIGraphicsBeginImageContext(size);
;
UIRectFill(CGRectMake(0, 0, size.width, size.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
处置惩罚 UIImage
[*]获取图像尺寸
CGSize imageSize = image.size;
[*]获取图像的缩放比例
CGFloat scale = image.scale;
[*]生存图像到文件
NSData *imageData = UIImagePNGRepresentation(image);
;
UIImageView
UIImageView 是一个用于表现图像的视图类。它可以表现 UIImage 对象,并提供了一些方便的方法来调整图像的表现方式。
[*]创建 UIImageView
UIImageView *imageView = [ initWithImage:image];
imageView.frame = CGRectMake(50, 50, 100, 100);
配置 UIImageView
[*]设置图像
imageView.image = image;
[*]内容模式
UIImageView 提供了多种内容模式,用于控制图像如何在视图中表现:
imageView.contentMode = UIViewContentModeScaleAspectFit;// 保持比例适应视图
imageView.contentMode = UIViewContentModeScaleAspectFill; // 保持比例填充视图,可能会裁剪图像
imageView.contentMode = UIViewContentModeCenter; // 居中显示图像
[*]设置边框和圆角
imageView.layer.borderColor = .CGColor;
imageView.layer.borderWidth = 2.0;
imageView.layer.cornerRadius = 10.0;
imageView.clipsToBounds = YES;
动画 UIImageView
[*]逐帧动画
UIImageView 可以通过设置 animationImages 属性来播放逐帧动画:
imageView.animationImages = @;
imageView.animationDuration = 1.0;// 动画时长
imageView.animationRepeatCount = 0; // 无限循环
;
使用示例
以下是一个完整的示例,展示了如何使用 UIImage 和 UIImageView:
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@endViewController.m
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
;
self.view.backgroundColor = ;
// 创建 UIImage 对象
UIImage *image = ;
// 创建 UIImageView 对象并设置图像
UIImageView *imageView = [ initWithImage:image];
imageView.frame = CGRectMake(50, 50, 200, 200);
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.layer.borderColor = .CGColor;
imageView.layer.borderWidth = 2.0;
imageView.layer.cornerRadius = 10.0;
imageView.clipsToBounds = YES;
;
// 动画 UIImageView
UIImage *image1 = ;
UIImage *image2 = ;
UIImage *image3 = ;
UIImageView *animatedImageView = [ initWithFrame:CGRectMake(50, 300, 200, 200)];
animatedImageView.animationImages = @;
animatedImageView.animationDuration = 1.0;
animatedImageView.animationRepeatCount = 0;
;
;
}
@end
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]