如何在使用 Interface Builder 创建的 UIImageView 中加载图像?
How to load image inside the UIImageView created using Interface Builder?
我使用 xib 创建了一个 UIImageView。当我使用以下代码时,图像出现在模拟器的左上角。虽然我已经使用 Interface Builder 将 UIImageView 的底部约束设置为黑色按钮上方 45,但它不起作用。
我希望图像显示在我使用 xib 放置 UIImageView 的位置。请帮忙!谢谢!
UIImage *image = [UIImage imageNamed:@"picture.jpg"];
self.imageHolder = [[UIImageView alloc] initWithImage:image];
self.imageHolder.image = image;
[self.view addSubview:self.imageHolder];
按照您描述的方式,您正在初始化两个 UIImageView:一个在 XIB 中,一个在代码中。您不需要这些行:
UIImage *image = [UIImage imageNamed:@"picture.jpg"];
self.imageHolder = [[UIImageView alloc] initWithImage:image];
self.imageHolder.image = image;
[self.view addSubview:self.imageHolder];
只需将 UIImageView 的 IBOutlet 属性 创建到相应的视图控制器,如下所示:
@property (nonatomic, weak) IBOutlet UIImageView *imageView;
属性不需要任何初始化。只需将其放入您的 viewDidLoad
方法中即可:
self.imageView.image = [UIImage imageNamed:@"picture.jpg"];
如果图像不会被动态设置,请在 XIB 的属性检查器中设置它。
首先单击“显示助手编辑器”按钮以同时显示界面生成器和代码
然后单击+ctrl 按钮 并将图像拖到代码中以创建一个 IBOutlet。
@property (weak, nonatomic) IBOutlet UIImageView *sunImage;
然后在-(void)viewdidload
或者你想设置图片的地方
UIImage *image = [UIImage imageNamed:@"picture.jpg"];
[self.sunImage setImage:image];
IOS 将自动在与您的 xib 文件相同的包中查找您的文件 "overflow.png"。如果你的 xib 文件只是在你的应用程序的目标中,那么默认情况下它会在主包中查找。
如果您想以编程方式将新图像加载到图像视图中,并且您的图像位于主包中:
UIImage *image = [UIImage imageNamed:@"MyAwesomeImage"];
self.imageView = image;
如果您的图片在另一个包中:
NSBundle *imageBundle = ... // [NSBundle mainBundle] if your image is inside main bundle
NSString *imagePath = [imageBundle pathForResource:@"MyAwesomeImage" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
self.imageView.image = image;
我使用 xib 创建了一个 UIImageView。当我使用以下代码时,图像出现在模拟器的左上角。虽然我已经使用 Interface Builder 将 UIImageView 的底部约束设置为黑色按钮上方 45,但它不起作用。
我希望图像显示在我使用 xib 放置 UIImageView 的位置。请帮忙!谢谢!
UIImage *image = [UIImage imageNamed:@"picture.jpg"];
self.imageHolder = [[UIImageView alloc] initWithImage:image];
self.imageHolder.image = image;
[self.view addSubview:self.imageHolder];
按照您描述的方式,您正在初始化两个 UIImageView:一个在 XIB 中,一个在代码中。您不需要这些行:
UIImage *image = [UIImage imageNamed:@"picture.jpg"];
self.imageHolder = [[UIImageView alloc] initWithImage:image];
self.imageHolder.image = image;
[self.view addSubview:self.imageHolder];
只需将 UIImageView 的 IBOutlet 属性 创建到相应的视图控制器,如下所示:
@property (nonatomic, weak) IBOutlet UIImageView *imageView;
属性不需要任何初始化。只需将其放入您的 viewDidLoad
方法中即可:
self.imageView.image = [UIImage imageNamed:@"picture.jpg"];
如果图像不会被动态设置,请在 XIB 的属性检查器中设置它。
首先单击“显示助手编辑器”按钮以同时显示界面生成器和代码
然后单击+ctrl 按钮 并将图像拖到代码中以创建一个 IBOutlet。
@property (weak, nonatomic) IBOutlet UIImageView *sunImage;
然后在-(void)viewdidload
或者你想设置图片的地方
UIImage *image = [UIImage imageNamed:@"picture.jpg"];
[self.sunImage setImage:image];
IOS 将自动在与您的 xib 文件相同的包中查找您的文件 "overflow.png"。如果你的 xib 文件只是在你的应用程序的目标中,那么默认情况下它会在主包中查找。
如果您想以编程方式将新图像加载到图像视图中,并且您的图像位于主包中:
UIImage *image = [UIImage imageNamed:@"MyAwesomeImage"];
self.imageView = image;
如果您的图片在另一个包中:
NSBundle *imageBundle = ... // [NSBundle mainBundle] if your image is inside main bundle
NSString *imagePath = [imageBundle pathForResource:@"MyAwesomeImage" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
self.imageView.image = image;