我使用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];
答案 0 :(得分:1)
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;
答案 1 :(得分:0)
按照你描述的方式,你正在初始化两个UIImageViews:一个在你的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中设置它。
答案 2 :(得分:0)
首先点击“显示助理编辑器按钮以显示界面构建器和代码
”然后点击+ ctrl按钮并将图片拖到代码中以创建IBOutlet。
@property (weak, nonatomic) IBOutlet UIImageView *sunImage;
然后在-(void)viewdidload
或您想要设置图片的地方
UIImage *image = [UIImage imageNamed:@"picture.jpg"];
[self.sunImage setImage:image];