UIImageView可加载的长图最长长度为16384像素(不知道原因),已测试与手机屏幕大小无关。查找资料后,本着低成本高回报的原则,查看超长图片还是转化为HTML处理最为合适。
1.先把image用HTML代码包装一下
/// 将 image 包装为 HTML 代码
- (NSString *)htmlForJPGImage:(UIImage *)image {
NSData *imageData = UIImageJPEGRepresentation(image,1.f);
NSString *imageBase64 = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
return [NSString stringWithFormat:@"<html><body><div align=center><img src='data:image/jpg;base64,%@'/></div></body></html>",imageBase64];
}
2.iOS 8.0+使用 WKWebView
加载 HTML 代码
NSString *imgHtml = [self htmlForJPGImage:[UIImage imageNamed:@"big.jpg"]];
[self.webView loadHTMLString:imgHtml baseURL:nil];
代码结束。
小伙伴们如果想要深入了解UIImageView的运行机制和极限优化,可移步:https://www.jianshu.com/p/f750196a264a
网友评论