6

良い一日!

私のビュー(メインビューのビュー)を角を丸くしようとしています。私はこのようにやっていますが、うまくいきません。何か案は?

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
    currenView = [[UIView alloc] init]; 

    UIBezierPath *maskPath;
    maskPath = [UIBezierPath bezierPathWithRoundedRect:currenView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(30.0, 30.0)];

    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.frame = currenView.bounds;
    maskLayer.path = maskPath.CGPath;
    currenView.layer.mask = maskLayer;


}
return self;
4

4 に答える 4

13

次のようなことを試してください:

view.layer.cornerRadius = 5.0;
view.layer.masksToBounds = YES;

影の場合:

view.layer.shadowColor = [UIColor blackColor].CGColor;
view.layer.shadowOffset = CGSizeMake(1.0f, 1.0f);
view.layer.masksToBounds = NO;
view.layer.shadowRadius = 5.0f;

必ずインポートしてください<QuartzCore/QuartzCore.h>

于 2013-02-01T13:44:03.973 に答える
0

Stavashの解決策は正しいようです、私はそれを数回使用しました。別の方法を探している場合、またはマスクレイヤーの使用を主張している場合は、次の回答を参照してください:https ://stackoverflow.com/a/13163693/936957

于 2013-02-01T13:55:24.913 に答える
0

あなたのビューにはサイズがありません。その w と h は 0 です。

currentView = [[UIView alloc] initWithFrame:CGRectMake(0,0 200,200)]; 

そして適用する

currentView.layer.cornerRadius = 8.0;
currentView.layer.masksToBounds = YES;
currentView.layer.borderWidth = 1.0; 
于 2013-02-01T14:12:35.490 に答える