保存UITextview的内容以供进一步编辑

时间:2014-06-03 11:41:43

标签: save uitextview

我有一个带有属性字符串的UITextView和UIImageViews / UIViews作为UITextView的子视图。 我想保存整个UITextView(带子视图),以便以后可以编辑。 我从这段代码片段中看到了NSKeyedArchiver:

- (NSData *)dataForView:(UIView *)view 
   {
        NSMutableData *data = [NSMutableData data];
        NSKeyedArchiver  *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
        [archiver encodeObject:view forKey:@"view"];
        [archiver finishEncoding];
        return (id)data;
   }

但是,根据此线程NSKeyedArchiver returning nil for UIView's subviews,不应使用NSKeyedArchiver来保存整个UIView。

保存为图像,

UIGraphicsBeginImageContext(self.view.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* image1 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImagePNGRepresentation(image1);
[imageData writeToFile:myPath atomically:YES];

似乎不是解决方案,因为app应该支持重新编辑和重新保存。

成功保存为PDF格式,但是,我们可以将PDF重新加载回UITextView进行编辑吗?根据这个帖子,Displaying PDF content in UITextView,这是不可能的!

非常想为此获得解决方案。任何帮助将不胜感激。

P.S。不能将UITextView替换为UIWebView。

1 个答案:

答案 0 :(得分:0)

听起来像是CoreData

您需要一个简单的SQLite数据库架构,它可以存储具有任何相关文本属性的文本。 UIImageViews的图像可以以合适的格式写入磁盘,UIImageViews的x,y值可以与保存的图像文件名一起保存到数据库中。

恢复编辑后,您只需从SQLite数据库中读取即可重新创建UITextView及其UIImageView子视图。