簡體   English   中英

Swift @ IBDesignable / @ IBInspectable UIView樣式

[英]Swift @IBDesignable/@IBInspectable UIView styling

我正在嘗試對表格單元格原型中的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的“屬性檢查器”中的字段 Xcode 9的“屬性檢查器”

但是構建它之后,基本上沒有應用更改,我看不到陰影。

最有趣的是,我使用相同的方法來自定義文本字段和按鈕,並且此代碼適用於UIButton/UITextField但不適用於UIView

有人知道為什么它不適用於UIView嗎?

任何幫助,不勝感激。

謝謝。

檢查您的代碼:

layer.masksToBounds = cornerRadius > 0

更改為:

layer.masksToBounds = false

並且還要確保您的clipsToBounds在以下代碼中都設置為false

clipsToBounds = false

或像這樣在情節提要中:

在此處輸入圖片說明

請更新功能

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM