3

私はiOSベースのコアテキストアプリケーション(iOS 5、iPad)を構築しており、その中でいくつかの活版印刷計算を実行しているビューがあります(drawRectで)。

CGContextConvertRectToDeviceSpaceを使用すると、網膜デバイスで得られる結果が非網膜デバイスの2倍になることに気づきました。drawRect内に、網膜/非網膜デバイスの違いを隠す暗黙の変換が適用されていることを理解しているので、なぜ違いがまったく表示されないのか混乱しています。

具体的には、特定のCTLineのユーザー座標での位置をユーザー空間座標で計算しようとしています。私は最初にラインにCTLineGetTypographicBoundsを使用し、CGContextConvertRectToDeviceSpaceでそれらの値を使用して長方形を取得します...しかし、返される長方形は、網膜デバイスの幅と高さが非網膜デバイスの2倍になります。足りないものはありますか?

4

1 に答える 1

1

CGContextConvertRectToDeviceSpaceを使用すると、網膜デバイスで得られる結果が非網膜デバイスの2倍になることに気づきました。

私には普通に聞こえます。「デバイススペース」は、出力デバイス(この場合はRetinaディスプレイ)の実際のピクセルを表します。通常、CGContextのユーザー空間座標系より2倍大きくスケーリングされます。

通常、デバイススペースとの間で変換する必要はほとんどありません。描画を実際のピクセルに揃える必要がある場合にのみ、変換を行います。

を使って何を達成しようとしていCGContextConvertRectToDeviceSpaceますか?別の方法があるかもしれません。

于 2012-05-09T03:18:37.360 に答える