我知道我们正在操作点不是像素,在大多数情况下它是方便的,但我需要使UIView为1像素而不是2像素高度.因此,如果您拖放“Interaface”构建器中的一些UIView(分隔线),并将其设置为1px(点)的高度,则在视网膜屏幕上(在设备和模拟器上)仍将看起来像2像素大小的线.
我知道在viewView中显示的是contentScaleFactor属性,它显示为retina(2.0f)或不是(1.0f).它的视图看起来像1.0f的值,所以你需要从主屏幕中检索:
[UIScreen mainScreen].scale;
这回我2.0f.现在,我添加了这个分隔符视图的高度约束,添加了检查isRetina的方法,并将其划分为1像素:
- (void)awakeFromNib{ [super awakeFromNib]; CGFloat isRetina = ([UIScreen mainScreen].scale == 2.0f) ? YES : NO; if (isRetina) { self.separatorViewHeightConstraint.constant /= 2; } }
这个工作,我只是不确定是使用0.5值的好主意…