2015-12-11 15 views
50

多くの質問like thisは、プログラムでマスクを作成し、UIViewに丸みのあるコーナーを提供する方法を説明しています。ストーリーボードを使用してUIViewをマスクし、角を丸くしますか?

ストーリーボード内ですべてを行う方法はありますか?ストーリーボードに丸みを帯びたコーナーを作成するような感じがするので、プレゼンテーションとロジックの境界が明確になります。

+0

[StoryboardでUIButtonの境界線を設定する](0120-18753)set_a-border-for-uibutton-in-storyboard – bummi

答えて

159

はい、私はそれをたくさん使っていますが、このような質問はすでに何度も回答されていました。

しかし、とにかくInterface Builderで。 あなたがユーザー定義のランタイムを追加する必要があるが、このように属性:

layer.masksToBounds Boolean YES 
layer.cornerRadius Number {View's Width/2} 

enter image description here

と有効

Clips subviews 

enter image description here

結果:

enter image description here

+0

どこでユーザー定義のランタイム属性を追加できますか? –

+0

最初の画像で選択したビューを右ウィンドウに表示します 第3アイコンを選択 ユーザー定義のランタイム属性 キーパス、タイプ、値を追加するには、以下の項目をクリックしてください –

+1

ボーダー半径を動的にすることができますか?またはそれは静的な整数である必要がありますか? – Crashalot

9

ユーザー定義プロパティを使用してストーリーボードで実行できます。丸めたいビューを選択し、IDインスペクタを開きます。

  • キーのパス:layer.cornerRadius、型:Number、値:(あなたが好きな半径)
  • キーのパス:layer.masksToBounds、種類:ユーザー定義ランタイムは Attributesセクションでは、次の2つのエントリを追加し、ブールを、値:あなたは(もしあれば)あなたのビューの対応するクラスファイルでQuartzKitをインポートする必要がありますが、私は、私はそれはそれを行うことなく動作するように得ていることを誓う

をチェックします。結果は異なる場合があります。

編集:私は、これが遊び場で動作することを確認

extension UIView { 

    /// The ratio (from 0.0 to 1.0, inclusive) of the view's corner radius 
    /// to its width. For example, a 50% radius would be specified with 
    /// `cornerRadiusRatio = 0.5`. 
    @IBDesignable public var cornerRadiusRatio: CGFloat { 
     get { 
      return layer.cornerRadius/frame.width 
     } 

     set { 
      // Make sure that it's between 0.0 and 1.0. If not, restrict it 
      // to that range. 
      let normalizedRatio = max(0.0, min(1.0, newValue)) 
      layer.cornerRadius = frame.width * normalizedRatio 
     } 
    } 

} 

動半径の例。

+0

境界線の半径を動的に常に幅の50%かそれとも静的な整数である必要がありますか? – Crashalot

+2

できるのはコードだけです。しかし、興味深い回避策は、IBInspectableプロパティをビューのクラスに追加することです。このプロパティは、0〜100の数値で、半径が必要な幅の割合を示します。たとえば、値50は半径が幅の50%であることを意味します。これは計算された(保存されていない)プロパティなので、UIViewの拡張機能に追加して、すべてのビューにプロパティを持たせることもできます。 – NRitH

+0

@NRitH、私はそのようなものを見ることに興味があります。ここにコードを投稿できると思いますか? –

関連する問題