2015-10-06 3 views
0

Использование ниже техники Я копирую представление, все было хорошо, но в iOS 9 он не смог скопировать используемые изображения в cloneView.Проблема с копией UIView в iOS 9

let cloneView = NSKeyedUnarchiver.unarchiveObjectWithData(
    NSKeyedArchiver.archivedDataWithRootObject(view1)) 

Может кто-нибудь помочь мне решить это. Любые рекомендации будут заметны.

ответ

0

Я предполагаю, что ваш view1 является UIImageView и вы назначаете изображения к нему с imageNamed: API, например, так

view1.image = [UIImage imageNamed:@"abc.png"]; 

Это немного странно, что вы получили это работает iOS8, как это не работает для меня.

Хотя я не знаю внутренней реализации методов архивирования/разборки, но я предположил, что он не позволяет создать копию изображения вида. Вы можете решить эту проблему, загрузив содержимое UIImage в исходное изображение.

NSString *path = [[NSBundle mainBundle] pathForResource:@"abc" ofType:@"png"]; 
view1.image = [UIImage imageWithContentsOfFile:path]; 

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

+0

'view1' - это экземпляр' UIView', который содержит несколько элементов управления, таких как UITextField, UIButton, UIImageView и т. Д., И я устанавливаю изображение из конструктора интерфейса. –

+0

@TapasPal - Хорошо, можете ли вы попробовать установить изображение, как я предложил выше. Удалите его из IB сейчас и посмотрите, работает ли это. – Gandalf

+0

@TapasPal - Вы нашли решение для своей проблемы? Мне было интересно, была ли моя идея правильной. Или вы можете опубликовать собственное решение, если есть что-то еще. – Gandalf