2016-07-01 4 views
0

は、私が「ラウンドビュー」を追加するために以下のコード行を使用する:作成100%ラウンドのUIView/UIImageview

_myBackView = [[UIView alloc] initWithFrame:rect]; 
_myBackView.backgroundColor = [UIColor colorWithR:153 G:85 B:57 alpha:1.0]; 
_myBackView.layer.cornerRadius = artworkViewWidth/2; 
_myBackView.layer.masksToBounds = YES; 
_myBackView.layer.borderWidth = 0; 
_myBackView.clipsToBounds = NO; 
[self.view addSubview:_myBackView]; 

ビューは罰金作成し、ほとんどのラウンドと思われます。しかし、問題は「100%丸い」とは思われません。クリップのToBoundsプロパティをNOに設定していましたが、4つのエッジがまだ少しクリップされているようです。

ご指摘いただければ幸いです。

EDIT:レトロ画像が追加されました。クリップされた4つのエッジに注意してください。 repro picture

+0

あなたがテストしている画像を持っているのに役立ちますか?また、画像は正方形ですか? – CodeBender

+0

'rect'の計算を含めてください。その矩形はコーナーの半径が正しいためには 'width == artworkViewWidth'を持たなければなりません。そうであれば、ビューは完全な円を形成します。 – danh

+0

@CodeBenderは応答に感謝します。私はスクリーンショットを含めました。私はここに画像を直接表示しているわけではなく、cornerRadiusのものをUIViewで直接テストしています。 –

答えて

0
_image.layer.cornerRadius = _image.frame.size.height/2; 

_image.layer.masksToBounds = YES; 

から回答

- (void)useMaskFor: (UIView*)colorArea { 

    CALayer *maskLayer = [CALayer layer]; 
    maskLayer.frame = colorArea.bounds; 
    UIImage *maskImage = [UIImage imageNamed:@"cirMask.png"]; 
    maskLayer.contents = (__bridge id)maskImage.CGImage; 
    colorArea.layer.mask = maskLayer; 
} 

は上記のコードを試してみてください(マスク層をPNG形式の円を使用)、これを試すことができます。

+0

それは動作します。ありがとう。 –

+0

イエップファイン.......ジャック – remyr3my

関連する問題