0

UIButton のサブクラス ビューの cornerRadius を設定しようとしていますが、丸い角は正しい方法で表示されますが、その上に subView(花のアイコン) を追加しようとすると、サブビューが上の写真のように切り取られるようです。下の右側、これは私が期待したものではありません。左側の写真のように、アイコンが切り取られないように、正しい外観を作ろうとします。私が使用するコード:

button.layer.cornerRadius = button.frame.width / 2;
button.layer.masksToBounds = Yes;    

アバタービュー(左) アバタービュー(右)

誰かがクリッピングを防ぐ方法を理解するのを手伝ってくれることを願っています.
ありがとう!

4

2 に答える 2

0

上記のコードを使用してボタンを丸くする場合、ボタンは間違いなく角から切り刻まれるため、3 つの角からのみ切り刻む場合は、次のようにします。

#import <QuartzCore/CoreAnimation.h>

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds 
                                           byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft
                                                 cornerRadii:CGSizeMake(7.0, 7.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = button.bounds;
maskLayer.path = maskPath.CGPath;
button.layer.mask = maskLayer;
于 2015-06-25T15:49:17.217 に答える