微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS开发-图片UIImage

UIImageUIImageView 是 iOS 开发中常用的两个类,分别用于表示图像数据和显示图像。

UIImage

UIImage一个表示图像数据的类,可以从文件、数据、图像资源库等加载图像。UIImage 支持多种图像格式,包括 PNG、JPEG、GIF 等。

创建 UIImage

  1. 文件创建

    UIImage *image = [UIImage imageNamed:@"exampleImage"];
    
  2. 从数据创建

    NSData *imageData = [NSData dataWithContentsOfFile:@"path/to/image"];
    UIImage *image = [UIImage imageWithData:imageData];
    
  3. 从 URL 创建

    NSURL *imageUrl = [NSURL URLWithString:@"https://example.com/image.png"];
    NSData *imageData = [NSData dataWithContentsOfURL:imageUrl];
    UIImage *image = [UIImage imageWithData:imageData];
    
  4. 从颜色创建

    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];
    

使用示例

以下是一个完整的示例,展示了如何使用 UIImageUIImageView

ViewController.h

#import <UIKit/UIKit.h>

@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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐