そのため、以下のコードを使用して のテキストにストローク (および塗りつぶし) を適用すると、UILabel
下の画像のようになります。ストロークは一方の側がもう一方の側よりも重くなっています (文字の上部を下部と比較し、右側を左側と比較してください。最後のピリオドも非常に目立ち、ぎょろ目のように見えます)。シャドウイングをまったくオンにしていないので、シャドウがストロークに干渉しているとは思いません。
何が原因でしょうか?
- (void) drawTextInRect: (CGRect) rect
{
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetTextDrawingMode(c, kCGTextFillStroke);
CGContextSaveGState(c);
CGContextSetRGBFillColor(c, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(c, 0.0, 1.0, 0.0, 1.0);
[super drawTextInRect: rect];
CGContextRestoreGState(c);
}
編集:だから、キックのために、塗りつぶしとストロークだけのラベルを見てみました。ストロークをオフにすると、Interface Builder で色を塗ったかのように、完全に通常のテキストが作成されます。ただし、塗りつぶしをオフにすると、ストロークのみが表示され、他のどの面よりも重く見えません。**これにより、問題は塗りつぶしがストロークに対してどこに配置されているかであり、塗りつぶしまたはストローク自体に問題があるとは思えません。これについて他に考えはありますか?塗りつぶしをストロークの中央に直接配置するにはどうすればよいですか?