Tag: 视网膜显示

从URL加载时应该如何处理视网膜/正常图像?

我知道如何以编程方式从URL加载我的应用程序的图像,而不是将它们打包在应用程序中,但是如何处理1x vs 2x问题? 如果需要,我可以从外部来源提供两个版本,但在设置UIImage时如何处理?

缺lessRetina 4发射图像。 如何忽略这个错误?

使用SDK 6.0更新Xcode会在尝试编译项目时出错。 缺lessRetina 4发射图像。 名为“Default-568@2x.png”的启动图像需要在Retina 4设备上以原始分辨率运行。 你想Xcode为你添加这个图像吗? 点击添加时,会创build一个尺寸为640×1136的黑色启动图像。 我知道我可以很容易地用适当的一个replace这个图像。 但XCode给我一个错误,迫使我有这个文件。 如果我不想包括这个,我怎样才能跳过这个错误,只使用已经存在的较短的启动图像? 屏幕截图: http : //spacetech.dk/xcode-missing-retina-4-launch-image.html

如何创build一个适用于视网膜显示的CGBitmapContext,而不是为正常显示浪费空间?

如果是在UIKit,包括drawRect ,Retina显示的高清方面是自动处理的吗? 那么这是否意味着在drawRect ,1024 x 768视图的当前graphics上下文实际上是2048 x 1536像素的位图上下文? ( 更新:如果我使用drawRect的当前上下文创build图像并打印其大小: CGContextRef context = UIGraphicsGetCurrentContext(); CGImageRef image = CGBitmapContextCreateImage(context); NSLog(@"width of context %i", (int) CGImageGetWidth(image)); NSLog(@"height of context %i", (int) CGImageGetHeight(image)); 然后在新的iPad上,禁用状态栏,打印2048和1536,iPad 2将显示1024和768) 实际上,我们享受了为我们自动处理的1点= 4像素的奢华。 但是,如果我们使用CGBitmapContextCreate ,那么这些将是像素,而不是点? (至less如果我们为该位图提供数据缓冲区,则缓冲区的大小(字节数)显然不是为了更高的分辨率,而是用于标准分辨率,即使我们将NULL作为缓冲区,以便CGBitmapContextCreate处理缓冲区对于我们来说,大小可能与传入数据缓冲区的大小相同,只是标准分辨率,而不是Retina的分辨率)。 我们总是可以为iPad 1和iPad 2以及新iPad创build2048 x 1536,但是这会浪费内存,处理器和GPU功耗,因为只有新iPad需要。 所以我们必须使用if () { } else { }来创build这样一个位图上下文,我们该怎么做呢? 我们所有的代码CGContextMoveToPoint必须调整Retina显示使用x * 2和y * 2与非视网膜显示只使用x, y […]

视网膜屏幕图像(@ 2x)

现在我正在Xcode 6中使用spritekit(swift)进行游戏。 它必须适用于iPhone 4及更高版本。 但据我所知,所有的iPhone都是4s以上的Retina,所以我可以用(750 x 1334 pix)和@ 2x.png添加所有的图片。 所以我不需要添加@ 2x图片 我对么?

如何在Interface Builder中创build1px行?

请注意,我正在寻找1px线,而不是1pt线。 这意味着它应该是1px而不pipe屏幕比例(在Retina设备上是0.5pt)。 我可以通过编程来完成,但是我可以在Interface Builder中完成吗? 例如我不能设置一个UIView有一个小于1的高度。 如果我可以在IB中完成,那么我不必声明一个sockets,并手动将帧设置在awakeFromNib 。

如何在iOS中绘制单点线

我想知道什么是绘制单点线的最佳方法? 我的目标是在tableViewCell中绘制这条线,使其看起来像本地的单元格分隔符。 我不想使用本机分隔符,因为我想在不同的颜色和不同的位置(而不是底部)。 起初,我用的是1px的UIView,并用灰色着色。 但在视网膜显示看起来像2px。 还尝试使用这种方法: – (void)drawLine:(CGPoint)startPoint endPoint:(CGPoint)endPoint inColor:(UIColor *)color { CGMutablePathRef straightLinePath = CGPathCreateMutable(); CGPathMoveToPoint(straightLinePath, NULL, startPoint.x, startPoint.y); CGPathAddLineToPoint(straightLinePath, NULL, endPoint.x, endPoint.y); CAShapeLayer *shapeLayer = [CAShapeLayer layer]; shapeLayer.path = straightLinePath; UIColor *fillColor = color; shapeLayer.fillColor = fillColor.CGColor; UIColor *strokeColor = color; shapeLayer.strokeColor = strokeColor.CGColor; shapeLayer.lineWidth = 0.5f; shapeLayer.fillRule = kCAFillRuleNonZero; [self.layer addSublayer:shapeLayer]; } […]

如何在通用应用程序中支持iPad和iPhone视网膜graphics

苹果公司推出了支持视网膜graphics的新iPad。 我在苹果应用程序中看到了这个链接视网膜graphics 。 正如你可以看到,苹果公司只是使用“@ 2x”后缀的视网膜iPad显示。 我有一个通用的应用程序。 那么如何在新的iPad 和 iPhone上支持视网膜? iPad的视网膜会使用类似于iPad的后缀“@ 2x”吗?