幅1pxの横線または縦線を描画する場合。
// 線幅
CGFloat wide = 1.0f / [UIScreen mainScreen].scale;
UIView *horizontal = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, wide)];
UIView *vertical = [[UIView alloc] initWithFrame:CGRectMake(0, 0, wide, 100)];
幅1pxの枠線を描画する場合。
borderWidth
は CGFloat なので0.5とかでも受け付ける。
// 線幅
CGFloat wide = 1.0f / [UIScreen mainScreen].scale;
CALayer *layer = [[CALayer alloc] init];
layer.borderWidth = wide;
CGFloat wide = 1.0f; // 1pt
// iOS 7.0以降のRetinaに限り、1pxにする
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
wide /= [UIScreen mainScreen].scale;
}
OSバージョン判定用に SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO()
を使用している。
http://stackoverflow.com/questions/3339722/how-to-check-ios-version/5337804#5337804