它们需要在Retina display上正确显示.
当我从网络上获取图像时,它们仍然看起来像素化.我需要将图像的比例设置为视网膜显示(2.0),但我必须遗漏一些东西.
这是我到目前为止所做的.
UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:@"http://www.msdomains.com/tmp/test.png"];CGRect labelFrame = CGRectMake(0,64,64);UIImageVIEw *imageVIEw = [[UIImageVIEw alloc] initWithFrame:labelFrame];imageVIEw.contentScaleFactor = [UIScreen mainScreen].scale;[imageVIEw setimage:img];[self addSubvIEw:imageVIEw];[imageVIEw release];解决方法 你的代码应该按原样运行.我不知道你的图像的原始尺寸是什么,但我猜它们是64×64像素.为了正确缩小尺寸,原始图像需要为128×128像素.
作为测试,以下代码在模拟器和我的iPhone 4上正确显示了Retina分辨率的照片:
UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.seenobjects.org/images/mediumlarge/2006-08-19-native-lilac.jpg"]]];CGRect labelFrame = CGRectMake(0,375,249.5);UIImageVIEw *imageVIEw = [[UIImageVIEw alloc] initWithFrame:labelFrame];[imageVIEw setimage:img];[self.vIEw addSubvIEw:imageVIEw];
请注意,UIImageVIEw是375×249.5点,这是照片原始(像素)尺寸的一半.此外,似乎没有必要设置contentScaleFactor.
(顺便说一句,我无法看到在URL上指定@ 2x会有所帮助,在这种情况下,因为对dataWithContentsOfURL的调用:将返回一个不透明的数据块,没有文件名的痕迹.这是不透明的数据然后传递给imageWithData:加载图像.)
总结以上是内存溢出为你收集整理的objective-c – 来自URL的图像的Retina显示全部内容,希望文章能够帮你解决objective-c – 来自URL的图像的Retina显示所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)