繁体   English   中英

如何将图像加载到视图?

[英]How do I load image to a view?

我是ios的新手。 我正在尝试将图像加载到我的视图中。 这是我的代码:

-(void)loadView
{
    UIImageView *imageHolder = [[UIImageView alloc] initWithFrame:CGRectMake(40, 40, 40, 40)];
    UIImage *image = [UIImage imageNamed:@"test.jpg"];
    imageHolder.image = image;
    [imageHolder sizeToFit];
    [self.view addSubview:imageHolder];
}

在名为Test类中,它是UIViewController的子类。 test.jpg在同一目录中。 当我运行时,在此行出现错误:

UIImage *image = [UIImage imageNamed:@"test.jpg"];

Thread1:EXC_BAD_ACCESS(code=2,address=0xbasd)

我在哪里犯错?

我正在使用ios7和xcode 5

我在您的代码中看到了问题。 它导致无限循环。 loadView-当视图为空并且您负责创建设置视图时调用此方法。 当您访问self.view您的视图为空,并且loadView方法将再次被调用,并且它将在无限循环中完成。

UIImageView *imageHolder = [[UIImageView alloc] initWithFrame:CGRectMake(40, 40, 40, 40)];
UIImage *image = [UIImage imageNamed:@"test.jpg"];
imageHolder.image = image;
[imageHolder sizeToFit];
self.view = [[UIView alloc] initWithFrame:frame];
[self.view addSubview:imageHolder];

文件结构中图像的位置并不重要。 将图像添加到项目时。 您可以通过-将图像拖拽到项目中来实现。 或通过-“将文件添加到项目”添加图像时,应选择要添加图像的目标项目。

我认为不应该使用loadView方法,而应该将代码放在-(void)viewDidLoad方法中。 顺便说一句,在Xcode5中,您需要右键单击您的项目,然后单击“将文件添加到项目”以添加此图像文件。

-(void)viewDidLoad
{
    [super viewDidLoad];
    UIImageView *imageHolder = [[UIImageView alloc] initWithFrame:CGRectMake(40, 40, 40, 40)];
    UIImage *image = [UIImage imageNamed:@"test.jpg"];
    imageHolder.image = image;
    [imageHolder sizeToFit];
    [self.view addSubview:imageHolder];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM