我正在捕获UIWebView的整页截图并通过segue传递图像:
Arrays.sort(regretProfits, new Comparator<RegretProfit>(){
@Override
public int compare(RegretProfit first, RegretProfit second){
if (first.possibleRoutes <= 0 && second.possibleRoutes > 0){
return 1;
}
if (first.possibleRoutes <= 0 && second.possibleRoutes <= 0){
return 0;
}
if (first.possibleRoutes > 0 && second.possibleRoutes <= 0){
return -1;
}
if (first.possibleRoutes < solution.schedule.size() - kay + 1 || second.possibleRoutes < solution.schedule.size() - kay + 1){
if (first.possibleRoutes < second.possibleRoutes){
return -1;
}
if (first.possibleRoutes > second.possibleRoutes){
return 1;
}
if (first.profit > second.profit){
return -1;
}
if (first.profit < second.profit){
return 1;
}
}
if (first.regret > second.regret){
return -1;
}
if (first.regret < second.regret){
return 1;
}
return 0;
}
;});
然后将UIImage保存到应用程序目录中的// WebViewController.swift
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "captureSegue" {
var captureViewcontroller:CaptureViewController = segue.destinationViewController as! CaptureViewController
captureViewcontroller.tempCaptureImage = image
}
}
就好了。如果我从文件系统打开它,它在预览中显示得很好。但是,如果截图非常大,则图像不会在UIImageView中显示。 UIImageView呈现空白。添加断点会显示图像数据存在,而不是渲染。
Documents/Images
这可能是因为图像很大吗?如果我捕获的页面较小,则图像显示正常。是否有任何推荐的技术可以在iDevices上查看大图像?
修改
以下是带有断点的变量视图的输出。也许你会看到我失踪的东西。
答案 0 :(得分:1)
您不会提供有关图像实际大小的任何信息,因此无法说出您可能会遇到的限制。但请记住,与单尺度图像相比,三尺度图像将基础位图存储器大小乘以9。这是一个数量级!我完全相信你会迅速超过应用程序的内存容量,如果你试图访问太大的图像,甚至会崩溃。因此,第一步肯定是将图像加载为单尺度图像;请参阅ImageIO框架以了解如何执行此操作。如果您想知道如何显示非常大的图像,另请参阅CATiledLayer上的文档。
答案 1 :(得分:1)
对于有类似问题的人,可能会尝试在真实设备中进行测试。对我来说,尺寸为1000 x 7000的图像不会显示在Simulator和Interface Builder中,但可以在iPhone 6s plus中显示。
此外,如果图像大小超过10000 x 10000,Interface Builder会抱怨。