gpt4 book ai didi

ios7 - iOS 7 UITextView : Size of nstextattachment getting 2x after reopening the application

转载 作者:行者123 更新时间:2023-12-04 12:08:06 28 4
gpt4 key购买 nike

我正在使用 ios7 中的 Text Kit 构建一个笔记编辑器。早些时候我在渲染自定义大小的 NSTextAttachment 时遇到了麻烦,因为它在很大程度上减慢了渲染速度。我通过缩放图像然后将它们添加到 textview 解决了这个问题。你可以找到我的答案
iOS 7.0 UITextView gettings terribly slow after adding images to it
缩放图像后,textview 渲染运行良好,没有任何延迟。textview 的属性文本存储在核心数据中。在应用程序的运行 session 期间,textview 正确显示图像。即使在核心数据中保存属性文本并检索它之后再次在 textview 上显示,图像看起来不错。但是在杀死应用程序并再次运行应用程序之后。图像被放大到 2 倍大小。在缩放图像时我使用了以下函数并使用 [[UIScreen bounds] scale] 来保持图像质量。

- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {

UIGraphicsBeginImageContextWithOptions(newSize, NO, [UIScreen mainScreen].scale);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}

如果我将图像缩放到 1.0,图像不会扩展,但图像质量非常差。

我认为问题出在哪里?
问题在于布局管理器。

我试过的
我曾尝试子类化 NSLayoutManager 并覆盖
- (void)drawGlyphsForGlyphRange:(NSRange)glyphsToShow atPoint:(CGPoint)origin
我看到的是运行应用程序的新 session 时附件大小加倍。如果我尝试检查附件的大小并调整它的大小。延迟又开始出现。
我很早就被这个问题困住了。任何建议将不胜感激。 enter image description here
enter image description here

最佳答案

莫非是视网膜显示的原因?如果是视网膜,您可能需要在存储前将尺寸缩小 50%。试试这个怎么样:-

 //Original Size that you want to store
CGSize imageSize = CGSizeMake(320.0f, 320.0f);

//Make the image 50% of the size for retina
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&([UIScreen mainScreen].scale == 2.0)) {
// Retina display
imageSize = CGSizeMake(160.0f, 160.0f);
}

UIImage * storeImage = [self imageWithImage:self.image scaledToSize:imageSize]
//TODO: Store this image locally or whatever you want to do.

关于ios7 - iOS 7 UITextView : Size of nstextattachment getting 2x after reopening the application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300349/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com