2

我是 iPhone 开发新手。

现在我有一个项目,它的目录结构如下所示:

Tutorial
       \__Tutorial\
                 \__1.png
                 \__TutorialViewController.h
                 \__TutorialViewController.m
                 \__TutorialViewController.xib
                 \__Supporting Files\
       \__Frameworks\
       \__Products\

我尝试使用 [UIImage imageNamed:@"1.png"] 将图像渲染到视图:

 UIImage *image = [UIImage imageNamed:@"1.png"];
 imageView.image = image;
 [image release];

但是图像不显示。

所以我想知道我应该在哪里放置图像?

另外,如果我有很多图像(比如 1000 个数字),应该怎么办?


这是我的代码:

#import "TutorialViewController.h"

@implementation TutorialViewController
@synthesize labelText;
@synthesize imageView;

-(void) click:(id)sender {
    NSString *titleOfButton = [sender titleForState:UIControlStateNormal];
    NSString *newText = [[NSString alloc]initWithFormat:@"%@",titleOfButton];
    // Change Image When Clicking Color Button
    if([titleOfButton isEqualToString:@"Blue"]){
        NSLog(@"Blue");
        imageView.image = [UIImage imageNamed:@"a.png"];
    }else{
        imageView.image = [UIImage imageNamed:@"b.png"];;
        NSLog(@"Else");
    }
    labelText.text = newText;
    [newText release];
}
4

4 回答 4

1

您应该创建一个名为 Resources 的文件夹并在其中添加图像。

UIImage *image = [UIImage imageNamed:@"IMG_0270.PNG"];
imgView_.image = image;

我已经使用了上面的代码,它在我的系统上运行良好。可能是您没有在界面生成器中连接 imgView 的插座。

编辑:

我发现的问题是您没有将其添加为子视图。您应该像这样更改代码:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.png"]];

NSString *titleOfButton = [sender titleForState:UIControlStateNormal];
NSString *newText = [[NSString alloc] initWithFormat:@"%@", titleOfButton];

// Change Image When Clicking Color Button
if([titleOfButton isEqualToString:@"Blue"]) {
    NSLog(@"Blue");
    imageView.image = [UIImage imageNamed:@"IMG_0270.png"];
} else {
    imageView.image = [UIImage imageNamed:@"b.png"];
    NSLog(@"Else");
}

[imageView setFrame:CGRectMake(10, 10, 230, 123)];
[self.view addSubview:imageView];

// labelText.text = newText;
[newText release];
于 2012-06-06T10:58:12.620 回答
0

你的代码没有prbm。但有时图像损坏,由于这个原因它不显示,尝试一些其他图像,如果图像未添加到捆绑路径添加

项目目标>构建阶段>复制捆绑资源

. 可能会有所帮助。

于 2012-06-06T11:12:47.503 回答
0

您对此声明有疑问

[image release];

记住何时使用 release 的最简单方法是NARC关键字 :)

永远记得在 4 种情况下进行释放调用。

N 新

一个分配

R 保留

C 复制

于 2012-06-06T11:13:42.907 回答
0

尝试删除方法的第一行,如果您已UIImageView在 xib 中连接,则无需重新分配它。而且改为调用self.imageView.image而已imageView.image

于 2012-06-06T11:34:10.443 回答