2016-11-09 8 views
1

私は進歩のビューを持っています。コーナーの半径を変更すると、進行状況が1.0(フル)のときに角が丸くなりますが、丸みを帯びてコーナーを丸くしたいと思います例えば、下の画像は途中で進捗を示しています。左端だけが角を丸くしているのが分かります。進捗全体に丸みを帯びたコーナー

Progres (=========

私はすでにviewDidLoadにこれらのプロパティを設定します。

progressView.clipsToBounds = true 
progressView.layer.cornerRadius = 3 
progressView.layer.masksToBounds = true 
+2

である私は、あなたがデ青いものを見つけると同じ処理を適用するためにサブレイヤに検索するべきだと思います – CZ54

+0

のObj-Cで、この類似した質問チェックアウトします。http:/を/stackoverflow.com/q/14775310/1689376 – alexburtnik

+0

@bobby本当に、私はサブビューをしていて、うまくいきませんでした。今私はそれを試して、それが働いたサブレイヤについて言った。答えとして置き、私はそれを正しいものとしてマークします。 –

答えて

4

私はあなたがデ青いものを見つけると同じ治療

+2

これからアクセスする正しい方法を探している人にとって、これは私のために働いた: 'barLayer = progressView.layer.sublayers [1]'。次に、必要に応じて 'cornerRadius'と' masksToBounds'プロパティを調整します。 – tfe

-1

はいを​​適用するためにサブレイヤに検索すべきだと思います、@ CZ54の答えは正しいです。ここにコードがあります。

[progressView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 
     obj.layer.masksToBounds = YES; 
     obj.layer.cornerRadius = progressView.layer.cornerRadius; 
    }]; 
0

これが正解

// Set the rounded edge for the outer bar 
self.layer.cornerRadius = 12 
self.clipsToBounds = true 

// Set the rounded edge for the inner bar   
self.layer.sublayers![1].cornerRadius = 12 
self.subviews[1].clipsToBounds = true