来自URL的Swift图像 - 在Ipad模拟器上质量很好,但在Iphone 4s模拟器上的质量非常差

时间:2015-07-10 19:44:55

标签: ios objective-c iphone swift xcode6

我对此事感到沮丧。一直试图弄清楚几天没有用。

问题非常清楚。我有一个固定宽度和高度为65x65px的图像视图。我碰巧在某个Web服务器上有一个相同尺寸(65x65px)的图像。

我正在做的是将URL的图像加载到图像视图中。 (将在下面附上代码)。

一切都运作良好,除了图像的质量非常糟糕,我不知道为什么。尝试了各种各样的事情,但似乎无法弄明白。

请注意,从图像集(本地)加载的图像质量非常好(它们没有问题。只有来自URL的图像有)

2个行为引起了我的注意:

1)如果我创建一个宽度和高度为65px的按钮,并将我从URL获取的图像作为按钮的BACKGROUND。它的质量非常完美。

2)如果我使用更大的模拟器,质量会变得越来越好。在Iphone 6 plus模拟器上它是温和的(仍然很糟糕),但在Ipad / Ipad2上几乎完美

我用来从URL获取图像并将其加载到ImageView中的代码是:

let imgUrl = NSURL(string: "http://imageurl")
let data = NSData(contentsOfURL: imgUrl!)
cell.myImageView.image = UIImage(data: data!)

我尝试过各种绝望的尝试,例如尝试使用不在表格单元格中的imageview。不同的图像,不同的大小,甚至将图像设置为有效的背景,但我不相信这是解决方案...

我开始认为这是一个模拟器问题..但我不想发布有这样一个问题的应用程序(如果它不是模拟器问题)

另一件事可能值得一提,但我怀疑。我正在使用远程访问的mac。从来没有在我面前的Mac上测试过这个,但我怀疑这是否相关,因为其他本地图像质量很好,大型模拟器也有很好的质量。

对此事的任何意见都将受到高度赞赏。

问候。

编辑:我正在使用xCode 6.3.x

编辑:经过进一步调查,我开始猜测这是缩放/缩放问题。我认为问题是,当我打开Iphone4s时,图像只是缩放(整个模拟器窗口被放大/缩放以填满屏幕)。我检查了Iphone4s和Ipad2模拟器上的“比例”,两者都是100%。但是,Ipad2上的相同图像比Iphone4S(在我的屏幕上)上的相同图像小两倍,尽管它们的宽度和高度都是65px。所以我想这是一个模拟器问题?我怎么能这么肯定呢?或者甚至知道哪个版本是正确的。

编辑: 似乎问题如上所述。 Iphone4S没有显示图像的实际尺寸,就像放大了一样。您可以阅读以下注释以获取更多信息。 remus建议的测试结果(非常感谢您的帮助先生)

Ipad2 Simulator

Iphone4S simulator

2 个答案:

答案 0 :(得分:0)

您所在的国家/您使用的服务提供商是什么?一些服务提供商将根据用户代理拦截图形并降低其质量。尝试使用SSL(https://)网址来防止这种情况发生。

您可以通过在Safari中加载所有设备上的图片网址并进行比较来测试此理论。

答案 1 :(得分:0)

我认为这必须归功于iPhone 4S上的视网膜显示。 iPad 2没有视网膜显示屏,因此图像以实际比例显示。

在iPhone 4(及以上版本)上,视网膜显示屏的密度是其两倍,因此需要将图像缩放2倍才能以相同的尺寸显示。

尝试向iPhone提供两倍大的图像,您应该会看到更好的结果。