获取UIImage以在UIImageView中显示

时间:2014-03-12 18:28:55

标签: ios objective-c uiimageview uiimage

我的观点没有显示。

我创建了一个空应用程序并添加了一个按钮和一个UIImageView。

我用过故事板。 只有一个故事板。 箭头指向这个故事板。

我在AppDelegate中设置了rootViewController。我在视图控制器中设置了下面的图像。

图片列为' bl_5_00'在Images.xcassets蓝色文件夹中。

一个红色的按钮并没有显示出任何让我相信我已经搞砸了更具结构性的东西。

应用代表

#import "PEPI_AppDelegate.h"
#import "PEPI_LessonViewController.h"

@implementation PEPI_AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];

    PEPI_LessonViewController *controller = [[PEPI_LessonViewController alloc] init];
    self.window.rootViewController = controller;

    [self.window makeKeyAndVisible];
    return YES;
}

查看控制器

#import "PEPI_LessonViewController.h"

@interface PEPI_LessonViewController ()

@property (weak, nonatomic) IBOutlet UIImageView *mainImage;

@end

@implementation PEPI_LessonViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    UIImage *imageYouWantToPass = [UIImage imageNamed:@"bl_5_00"];

    self.mainImage.image = imageYouWantToPass;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

2 个答案:

答案 0 :(得分:1)

如果传递图像名称,包含文件内容的图像不起作用。您可以改为使用imageNamed:

UIImage *imageYouWantToPass = [UIImage imageNamed:@"bl_5_00"];

我认为l_5_00是图像的名称,您将此文件添加到项目中(不仅仅是参考)。

答案 1 :(得分:1)

如果您使用

[UIImage imageWithContentsOfFile:@"bl_5_00"];

这意味着您正在尝试从绝对文件路径中获取图像,而这里您传递的相对名称将无效。你可以试试..

NSString *filePath=[[NSBundle mailBundle] pathForResource:@"bl_5_00" ofType:@"png"];

OR

NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"bl_5_00.png"];

然后

UIImage *image=[UIImage imageWithContentsOfFile:filePath];

<强>被修改

检查文件是否在您的资产中,或者不要尝试以下技巧 只需添加

NSLog(@"%@",[[NSBundle mainBundle] pathForResource:@"bl_5_00" ofType:@"png"]);

如果存在,它会记录图像的完整路径,我怀疑它没有添加到你的包中,所以它没有加载,如果图像不存在,你会得到(null) 。尝试重新添加图像并再次清理构建应用程序。

希望它有所帮助。欢呼声。