1

UIButton.titleLabel.shadowOffset プロパティにより影がシャープになるため、 drawTextInRect メソッドを変更して、以下のように半径のカスタム シャドウを作成しました。

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
float colorValues[] = {0, 0, 0, opacity};
CGColorRef shadowColor = CGColorCreate(colorSpace, colorValues);
CGSize shadowOffset = CGSizeMake(offsetX, offsetY);
CGContextSetShadowWithColor (context, shadowOffset, radius, shadowColor);

これはうまくいきます。それは影を作ります。titleLabel の境界を変更し、 drawTextInRect メソッドを次のように呼び出しました。

button.titleLabel.bounds = CGRectMake(button.titleLabel.bounds.origin.x, button.titleLabel.bounds.origin.y, button.titleLabel.bounds.size.width, button.titleLabel.bounds.size.height);
[button.titleLabel drawTextInRect:button.titleLabel.bounds];
[button setNeedsLayout];

titleLabel 境界のため、影がクリッピングしています。

どんな助けでも大歓迎です...

4

1 に答える 1

0

レイヤーで同じことを試しましたか。問題が解決されると思います。おそらく、あなたがしたことは必要ありません。

単純に、ボタンのレイヤー (CALayer) オブジェクトを作成し、必要に応じてプロパティを使用します。レイヤーを使用するには、QuartzCore フレームワークをインポートする必要があることに注意してください。

試してみてください。気になる点があれば、私に声をかけてください。

于 2012-11-29T09:46:58.517 に答える