2017-09-22 11 views
1

UIViewテーブルセルのプロトタイプ内にスタイルを設定して、スタイリングのカスタマイズを行うようにしましたが、プロジェクトをビルドするときに変更が適用されません。Swift @ IBDesignable/@ IBInspectable UIViewスタイリング

私は別のファイルにそれのために次のコードCustomView.swift

import UIKit 

@IBDesignable 
class CustomView: UIView { 



    @IBInspectable var cornerRadius: CGFloat = 0 { 
     didSet { 
      layer.cornerRadius = cornerRadius 
      layer.masksToBounds = cornerRadius > 0 
     } 
    } 

    @IBInspectable var shadowOpacity: Float = 0 { 
     didSet { 
      layer.shadowOpacity = shadowOpacity 
     } 
    } 

    @IBInspectable var shadowRadius: CGFloat = 0 { 
     didSet { 
      layer.shadowRadius = shadowRadius 
     } 
    } 

    @IBInspectable var shadowOffset: CGSize = CGSize(width: 0.0, height: 0.0) { 
     didSet { 
      layer.shadowOffset = shadowOffset 
     } 
    } 

    @IBInspectable var shadowColor: UIColor? = UIColor(red: 157/255, green: 157/255, blue: 157/255, alpha: 1.0) { 
     didSet { 
      layer.shadowColor = shadowColor?.cgColor 
     } 
    } 

} 

私はXcodeの9 "Attribute inspector" of Xcode 9

の「属性インスペクター」内のフィールドを参照してくださいが、それを変更を構築した後に適用されていないを持っています基本的に私は見るための影を見ません。

私はテキストフィールドだけでなく、ボタンをカスタマイズするために同じアプローチを使用していますし、このコードはUIButton/UITextFieldのために動作しますが、それはUIViewのために動作しない理由UIView

のために誰かが知っていない?という最も興味深いですか

大変助かりました。

ありがとうございます。

layer.masksToBounds = cornerRadius > 0 

変更すること::また

layer.masksToBounds = false 

そして、あなたのclipsToBoundsがそうのようにいずれかのコードにfalseに設定されていることを確認してください:

答えて

3

はあなたのコードをチェックし

clipsToBounds = false 

あなたのストーリーボードのように:

enter image description here

+0

ハイテクを更新してください。私はあなたのコードの提案を試みたが、それは私のためにうまくいかなかった。それが私のストーリーボードがこの[ストーリーボード](https://i.imgur.com/xcRwYbu.png)のように見えるようになり、プロジェクトをビルドした後、シミュレータでIPhone8 [sim_result](https:// i .imgur.com/t0XtB7p.png)影なし。私のCustomView.swiftのコードは、あなたの提案された変更に加えて同じものです。 –

+0

あなたのストーリーボードのスクリーンショット私はclipsToBoundsフラグを見ることができませんが、それは真でなければならないかどうかを確認してくださいまた、偽である必要があります –

+0

こんにちはええ、私はclipToBoundsをfalseに設定した後、私は本当にあなたの助けに感謝します。ありがとうございました –

0

私に戻って来てくれてありがとう、機能

@IBInspectable 
    var cornerRadius: CGFloat = 0 { 
     didSet { 
      layer.cornerRadius = cornerRadius 
     } 
    } 
+0

こんにちは、応答ありがとう、私はあなたのコードの提案を試み、それは私のためにうまくいきませんでした。それが私のストーリーボードがこの[ストーリーボード](https://i.imgur.com/xcRwYbu.png)のように見えるようになり、プロジェクトをビルドした後、シミュレータでIPhone8 [sim_result](https:// i .imgur.com/t0XtB7p.png)影なし。私のCustomView.swiftのコードは、あなたの提案された変更に加えて同じものです。 –

関連する問題