Как отделить изображения от ресурсов в iOS - PullRequest
0 голосов
/ 22 сентября 2011

Я показываю набор изображений в моем приложении.У меня работает код, когда я загружаю изображение из папки «Ресурсы», например:

- (void)viewDidLoad
{

    NSMutableArray *array = [[NSMutableArray alloc] init];                          

    [array addObject:[NSString stringWithFormat: @"pic_a"]];     
    [array addObject:[NSString stringWithFormat: @"pic_b"]];    
    [array addObject:[NSString stringWithFormat: @"pic_c"]];     
    [array addObject:[NSString stringWithFormat: @"pic_d"]];     


    int index = arc4random() % [array count];

    NSString *pictureName = [array objectAtIndex:index];  


    NSString* imagePath = [ [ NSBundle mainBundle] pathForResource:pictureName ofType:@"png"];

    UIImage *img = [ UIImage imageWithContentsOfFile: imagePath];

    if (img != nil) { // Image was loaded successfully.
        [imageView setImage:img];
        [imageView setUserInteractionEnabled:NO];   
        [img release]; // Release the image now that we have a UIImageView that contains it.
    }

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

Однако, если я создаю группу «images» в группе «Resources» и помещаю команду tryзагрузить изображения оттуда, изображение в представлении отображается пустым.

[array addObject:[NSString stringWithFormat: @"images/pic_a"]];     
[array addObject:[NSString stringWithFormat: @"images/pic_b"]];    
[array addObject:[NSString stringWithFormat: @"images/pic_c"]];     
[array addObject:[NSString stringWithFormat: @"images/pic_d"]];

Я бы хотел отделить изображения от файлов пера и всего остального.Какой лучший способ сделать это?

Ответы [ 4 ]

1 голос
/ 22 сентября 2011

Даже если у вас есть изображения в отдельной группе в Ресурсах, вы можете загрузить их, назвав имя, например, используйте эту одну строку

UIImage *img = [UIImage imageNamed:[array objectAtIndex:index]];

вместо этих трех строк:

NSString *pictureName = [array objectAtIndex:index];  
NSString* imagePath = [ [ NSBundle mainBundle] pathForResource:pictureName ofType:@"png"];
UIImage *img = [ UIImage imageWithContentsOfFile: imagePath];

Вы по-прежнему будете заполнять массив просто:

[array addObject:[NSString stringWithFormat: @"pic_a"]];

Если у вас есть файлы jpg и png, то вам следует добавить .png в конец имени файла.В противном случае, оставить это нормально.

0 голосов
/ 22 сентября 2011

Вам нужно создать физическую папку с названием images (она должна иметь синий цвет вместо обычного желтого)

0 голосов
/ 22 сентября 2011

Помните, что добавление групп внутри вашего проекта просто для организации и поиска в Xcode.Добавление группы не изменит того факта, что изображения будут сохранены в основном комплекте.Если вы пытаетесь найти их, используя группу изображений в строке, он не найдет их.

Есть некоторые вещи, которые вы можете сделать, чтобы сделать эту работу, но в действительности вам это не нужно.

0 голосов
/ 22 сентября 2011

Попробуйте использовать метод imageNamed: вместо imageWithContentsOfFile:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...