iPhone: Показать заставку из папки «Документы» - PullRequest
3 голосов
/ 13 марта 2012

В моем приложении мне нужно отобразить заставку. Я собираю изображение из URL и сохраняю его как Default.png в папке документов.

Я успешно сохранил изображение и собрал путь.

Моя проблема в том, что он не отображается.Я не получаю никаких ошибок, и в журнале я получил правильный путь.

Это мой код:

 NSString *workSpacePath=[[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"/Default.png"];
    imgView=[[UIImageView alloc] init];
    imgView.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:workSpacePath]];    

    [self.view addSubview:imgView];

Я получил правильный путь в workSpacePath.

Ответы [ 4 ]

6 голосов
/ 13 марта 2012

Не перезаписывайте ваше изображение методом [UIImage imageNamed:].Этот метод работает только для изображений, которые являются частью вашего пакета.Он вернет ноль для пути в вашем каталоге документов.И из-за этого вы устанавливаете imgView.image ноль.Что означает, удалите изображение.

это должно работать:

NSString *workSpacePath=[[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"Default.png"];
imgView=[[UIImageView alloc] init];
imgView.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:workSpacePath]];    
//imgView.image=[UIImage imageNamed:workSpacePath];
[self.view addSubview:imgView];

Но вы не можете заменить «настоящий» экран-заставку.Однако после исчезновения исходного заставки вы можете показать другое изображение.

3 голосов
/ 13 марта 2012

«Экран-заставка» находится в образе, обычно называемом Default.png, и находится в комплекте приложений.Поскольку вам не разрешено изменять содержимое пакета приложения, вы не можете изменить «заставку» для своего приложения.

1 голос
/ 13 марта 2012

Default.png должен быть включен в комплект приложения.Он не может быть загружен по внешнему пути, как вам нужно, то есть из пути к каталогу документов.

Одно пользовательское решение заключается в том, что вы должны создать свое представление как заставку, которая будет выступать в качестве заставки и исчезнет через некоторое время.

0 голосов
/ 13 марта 2012

то, как вы делаете это, похоже на то, что вы просто пытаетесь показать изображение в режиме просмотра изображений - меня не интересует замена изображения заставки по умолчанию, поскольку вы не можете этого сделать, но для себя вы должны сделать только следующее:

imgView.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:workSpacePath]];
imageView.frame = CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height);
[self.view addSubview:imgView];
...