UIImage imageNamed requires pathForResource?

前端 未结 4 1368
一向
一向 2020-12-01 08:13

How necessary is it to search for a path to an image using the NSBundle method pathForResource when creating a UIImage using ima

4条回答
  •  离开以前
    2020-12-01 08:48

    I created a new Xcode project (single view, AppDelelgate, ViewController class, storyboard etc ). Created an Images group. Used Paintbrush to create a 16x16 png file Wall1.png and dropped it into the Images group in Xcode (let Xcode copy the files).

    In the ViewController viewDidLoad method added the code:

    UIImageView* imageView=[[UIImageView alloc] initWithFrame:CGRectMake(50, 100, 16, 16)];
    UIImage *image = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"Images/Wall1" ofType:@"png"]];
    imageView.image = image;
        UIImageView* imageView=[[UIImageView alloc] initWithFrame:CGRectMake(50, 100, 16, 16)];
    UIImage *image = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"Wall1" ofType:@"png"]];
    imageView.image = image;
    [self.view addSubview:imageView];
    

    Ran the app on my phone, the image would not appear

    Added a break point at [self.view addSubview:imageView];

    image was null

    Opened terminal and changed directory to my project, Wall1.png was not a group folder Images. Removed the png from the project, created a Images folder, moved Wall1.png into the folder. Added the existing file Wall1.png to the group Images.

    Ran the app, the image still doesn't appear.

    image was null

    Changed Images/Wall1 to Wall1

    Ran the app, boom image is displayed1

    If you create a group for your images, Xcode does not create a respective directory. Create one manually if you want to (I prefer to keep my images in a seperate folder). Dont specify the full path to your image file when using UIImage imageWithContentsOfFile.

提交回复
热议问题