2013-12-26 4 views
0

В моем приложении я сохраняю изображение с рисунками на нем. Когда я пытаюсь добавить метку в качестве подсмотра к представлению изображения, изображение успешно сохраняется, но на нем нет метки. Есть предположения? mainImage - это UIImageView, а playNameDisplay - UILabel.Добавление UILabel в UIImageView

Вот мой код:

UIGraphicsBeginImageContextWithOptions(self.mainImage.bounds.size, NO, 0.0); 
    [self.mainImage.image drawInRect:CGRectMake(0, 0, self.mainImage.frame.size.width, self.mainImage.frame.size.height)]; 
    [mainImage addSubview:playNameDisplay]; 
    UIImage *SaveImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    UIImageWriteToSavedPhotosAlbum(SaveImage, self,@selector(image:didFinishSavingWithError:contextInfo:), nil); 
+1

Какую версию iOS вы планируете развертывать? Это новый снимок api в iOS7, который очень быстрый для рисования представлений и их иерархии в изображение. – Freddy

ответ

0

Если вы используете iOS7, вы можете использовать новую apapshoting api из apple.

UIGraphicsBeginImageContextWithOptions(image.size, NULL, 0); 
[view drawViewHierarchyInRect:rect]; 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

мнение вы звоните drawViewHierarchyInRect должен быть ваш UIImageView, который имеет свой UILabelView как subview.If у вас есть доступ к 2013 видео Apple WWDC вы должны проверить Реализация пользовательского интерфейса на Если включается прошивкой. В нем есть несколько хороших примеров кода, а также обзор улучшения производительности по сравнению с более традиционными методами.

+0

Спасибо, что исправил мою проблему! –

0

Просто попробуйте принести подвид к передней собственности и check.Like это:

если метка добавляется как вид к югу от использования представления изображений этого.

[self.mainImage bringSubViewToFront:playNameDisplay]; 

, если метка и просматривать изображения добавляются как вид к югу ввиду: (ничего, кроме как точки зрения изображения и этикетки над кругами) использовать эту функцию.

[self.view bringSubviewToFront:playNameDisplay]; 
Смежные вопросы