UIImage
和 UIImageView
是 iOS 开发中常用的两个类,分别用于表示图像数据和显示图像。
UIImage
UIImage
是一个表示图像数据的类,可以从文件、数据、图像资源库等加载图像。UIImage
支持多种图像格式,包括 PNG、JPEG、GIF 等。
创建 UIImage
-
从文件创建
UIImage *image = [UIImage imageNamed:@"exampleImage"];
-
从数据创建
NSData *imageData = [NSData dataWithContentsOfFile:@"path/to/image"]; UIImage *image = [UIImage imageWithData:imageData];
-
从 URL 创建
NSURL *imageUrl = [NSURL URLWithString:@"https://example.com/image.png"]; NSData *imageData = [NSData dataWithContentsOfURL:imageUrl]; UIImage *image = [UIImage imageWithData:imageData];
-
从颜色创建
UIColor *color = [UIColor redColor]; CGSize size = CGSizeMake(100, 100); UIGraphicsBeginImageContext(size); [color setFill]; 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); [imageData writeToFile:@"path/to/save.png" atomically:YES];
UIImageView
UIImageView
是一个用于显示图像的视图类。它可以显示 UIImage
对象,并提供了一些方便的方法来调整图像的显示方式。
-
创建 UIImageView
UIImageView *imageView = [[UIImageView alloc] 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 = [UIColor blackColor].CGColor; imageView.layer.borderWidth = 2.0; imageView.layer.cornerRadius = 10.0; imageView.clipsToBounds = YES;
动画 UIImageView
-
逐帧动画
UIImageView
可以通过设置animationImages
属性来播放逐帧动画:imageView.animationImages = @[image1, image2, image3]; imageView.animationDuration = 1.0; // 动画时长 imageView.animationRepeatCount = 0; // 无限循环 [imageView startAnimating];
使用示例
以下是一个完整的示例,展示了如何使用 UIImage
和 UIImageView
:
ViewController.h
#import
@interface ViewController : UIViewController
@end
ViewController.m
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
// 创建 UIImage 对象
UIImage *image = [UIImage imageNamed:@"exampleImage"];
// 创建 UIImageView 对象并设置图像
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(50, 50, 200, 200);
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.layer.borderColor = [UIColor blackColor].CGColor;
imageView.layer.borderWidth = 2.0;
imageView.layer.cornerRadius = 10.0;
imageView.clipsToBounds = YES;
[self.view addSubview:imageView];
// 动画 UIImageView
UIImage *image1 = [UIImage imageNamed:@"frame1"];
UIImage *image2 = [UIImage imageNamed:@"frame2"];
UIImage *image3 = [UIImage imageNamed:@"frame3"];
UIImageView *animatedImageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 300, 200, 200)];
animatedImageView.animationImages = @[image1, image2, image3];
animatedImageView.animationDuration = 1.0;
animatedImageView.animationRepeatCount = 0;
[animatedImageView startAnimating];
[self.view addSubview:animatedImageView];
}
@end
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容