多くの質問like thisは、プログラムでマスクを作成し、UIViewに丸みのあるコーナーを提供する方法を説明しています。ストーリーボードを使用してUIViewをマスクし、角を丸くしますか?
ストーリーボード内ですべてを行う方法はありますか?ストーリーボードに丸みを帯びたコーナーを作成するような感じがするので、プレゼンテーションとロジックの境界が明確になります。
多くの質問like thisは、プログラムでマスクを作成し、UIViewに丸みのあるコーナーを提供する方法を説明しています。ストーリーボードを使用してUIViewをマスクし、角を丸くしますか?
ストーリーボード内ですべてを行う方法はありますか?ストーリーボードに丸みを帯びたコーナーを作成するような感じがするので、プレゼンテーションとロジックの境界が明確になります。
はい、私はそれをたくさん使っていますが、このような質問はすでに何度も回答されていました。
しかし、とにかくInterface Builderで。 あなたがユーザー定義のランタイムを追加する必要があるが、このように属性:
layer.masksToBounds Boolean YES
layer.cornerRadius Number {View's Width/2}
と有効
Clips subviews
結果:
どこでユーザー定義のランタイム属性を追加できますか? –
最初の画像で選択したビューを右ウィンドウに表示します 第3アイコンを選択 ユーザー定義のランタイム属性 キーパス、タイプ、値を追加するには、以下の項目をクリックしてください –
ボーダー半径を動的にすることができますか?またはそれは静的な整数である必要がありますか? – Crashalot
ユーザー定義プロパティを使用してストーリーボードで実行できます。丸めたいビューを選択し、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
}
}
}
動半径の例。
境界線の半径を動的に常に幅の50%かそれとも静的な整数である必要がありますか? – Crashalot
できるのはコードだけです。しかし、興味深い回避策は、IBInspectableプロパティをビューのクラスに追加することです。このプロパティは、0〜100の数値で、半径が必要な幅の割合を示します。たとえば、値50は半径が幅の50%であることを意味します。これは計算された(保存されていない)プロパティなので、UIViewの拡張機能に追加して、すべてのビューにプロパティを持たせることもできます。 – NRitH
@NRitH、私はそのようなものを見ることに興味があります。ここにコードを投稿できると思いますか? –
[StoryboardでUIButtonの境界線を設定する](0120-18753)set_a-border-for-uibutton-in-storyboard – bummi