Я бы использовал прозрачный UIView с UIImageView, содержащим пузырь и редактируемый набор UITextView.
Используйте это для изменения размера текстового представления всякий раз, когда отправляется уведомление об изменении текстового представления:
CGRect frame = textview.frame;
frame.size.height = textview.contentSize.height;
Textview.frame = frame;
Создайте подкласс UIView и используйте touchesbegan и touchchesmoved, чтобы определить, куда перемещать представление при перетаскивании.
sizewithfont: constrainedtosize: linebreakmode - метод размера строки
Как сохранить UIImage этого макета в фотоальбом:
CGRect screenRect = CGRectMake(0, 0, 320, 416); // change this as necessary
UIGraphicsBeginImageContext(screenRect.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil);