假设我在捆绑或资产目录中有三个图像:
在iOS 4及更高版本中,UIImage构造函数可以采用如下图像名称:
[UIImage imageNamed:@"Default"];
Run Code Online (Sandbox Code Playgroud)
当我使用3.5英寸视网膜显示器(iphone)时,它会自动选择图像(2).如果在非视网膜显示器上,则选择(1).这很棒.
我将图像命名为4英寸视网膜(iPhone 5)启动图像.有没有办法命名图像(3),所以当我在4英寸视网膜显示器上运行时,它返回与相同的UIImage构造函数?
也许这还没有实现,或者我对方便性的期望过高......我只是试图避免代码中的任何条件逻辑来根据屏幕尺寸选择图像.
如何以跨浏览器兼容的方式检测访问网页的设备的像素密度,以便可以在不向任何设备强制加倍图像的情况下提供标准或高图像?
有没有自动化的JavaScript库?
我想知道绘制单点线的最佳方法是什么?我的目标是在tableViewCell中绘制这一行,使其看起来就像本机单元格分隔符.我不想使用原生分隔符,因为我想制作不同的颜色和不同的位置(不是底部..).
起初我使用1px UIView并将其涂成灰色.但在Retina显示器中它看起来像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];
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它在60%的时间里工作..它有什么问题吗?无论如何,我很高兴听到更好的方式.
谢谢.
iPhone的29pt是否已经在Retina显示屏上?意思是我要把29pt还是58pt?对于iPad来说29pt是指非视网膜/ 1x还是视网膜/ 2x?

一个简单的问题,我一直很难找到一个明确的答案:PNG文件有DPI吗?或者更重要的是,在构建支持视网膜的网站/应用时,它是否甚至相关?
我刚收到设计师提供的PSD资产用于视网膜iPad应用程序,我必须将其转换为HTML以便在应用程序中显示.通常情况下,我会收到2048x1536 @ 72 DPI等文件 - 双倍尺寸但标准屏幕DPI.然后我通常使用CSS告诉浏览器如何显示它.
但这次设计师被指示以1024x768 @ 144 DPI(标准尺寸但双DPI)提供他的PSD.我认为这是不正确的,因为Photoshop中的DPI设置是用于打印目的.另外,当我将144 DPI PSD中的某些内容保存为PNG或JPG时,它与从72 DPI(或30,000 DPI)PSD保存的内容完全相同.DPI似乎没有反映在我可以在结果文件中看到的任何设置中,也不会反映在不同的文件大小中.看来,充其量只是元数据.
因此,我的理解是DPI在这里并不重要,我们应该只是为视网膜项目寻求双倍大小的资产,但我想在询问新资产之前对这个问题进行一些确认/澄清.我与许多正在从印刷背景过渡的设计师合作,所以这是我遇到的一个常见问题,我希望能够在将来为我们的要求提供更好的指导.
我有一个工作应用程序,我已经在我的iPod touch测试.一切都很好.
我的标签栏图标和启动画面图像位于我的Resources文件夹中的单独文件夹中
Resources->images
Run Code Online (Sandbox Code Playgroud)
现在,我知道iPhone4我需要使用2x图像.
我的问题是支持iPhone4所有我需要做的是在我的图像文件夹中添加2x图像.例如,如果我的splashscreen图像是Default.png,我应该将我的2x图像作为Default@2x.png添加到我的图像文件夹中,iphone将自动使用它.
所有tabbar图像都一样吗?
提前致谢
如果我执行以下操作会发生什么:
...@2x.pngs等)为什么我要这样做:
现在:
iPhone 3GS缩小图像并正确显示(当然还有一点处理开销)@2x文件名中的后缀.retina.js在文件扩展名之前查找具有相同文件名但带有@ 2x的图像
rails资产管道将缓存清除时间戳添加到文件名的末尾
这意味着retina.js正在寻找,filename-cachebuster@2x.png但文件是filename@2x-cachebuster.png
有人为此工作吗?
谁错了,即filename@2x-cachebuster.png如果原始文件名匹配指示其具有缓存清除哈希的模式,或者应该更改rails管道以确保@ 2x总是在...之前,应该训练retina.js查找文件.文件扩展名?
这是一个UILabel,上面写着"关于".在iOS中设置为17.7.
在它下面是一个UIWebView,它也说"关于".使用css也设置为17.7.
他们不匹配.
如何正确解决这个问题?
这是奇怪的是,在苹果自己的UIWebView,规模基础是不同的?
用于测试的HTML ...
<html><head>
<style type='text/css'>
body {
margin: 0px;
font-family: 'SourceSansPro-Light';
font-size: FONTPOINTSpt;
}
html { -webkit-text-size-adjust:none; }
</style></head>
<body leftmargin=0 topmargin=0>
About
</body></html>
Run Code Online (Sandbox Code Playgroud)
设备或模拟器上的行为是相同的.
(注意,从这里我学到了比例,也许是72.0/96.0.)
retina-display ×10
ios ×5
css ×2
iphone ×2
xcode ×2
google-maps ×1
html ×1
icons ×1
image ×1
ios6 ×1
iphone-4 ×1
javascript ×1
objective-c ×1
photoshop ×1
png ×1
resize ×1
retina.js ×1
uitableview ×1
uiwebview ×1