簡體   English   中英

情節提要Designtime布局屬性

[英]Storyboard Designtime Layout Attributes

在為Android定義布局時,此功能非常相似,並且可以定義僅用於設計的屬性。

http://tools.android.com/tips/layout-designtime-attributes

但是在使用情節提要制作iOS應用程序時,我沒有找到任何等效的方法來做同樣的事情。

目前,我正在清理ViewController的viewDidLoad上的所有設計值。 有沒有一種方法可以將布局屬性定義為設計占位符,並避免在所有視圖控制器中執行setupClean步驟?

如果要在情節提要中即時反映特定組件的屬性/屬性,則可以使用@IBDesignable來實現。

為此,您必須將其反映在情節提要上的那種類型的子級別

腳步

  1. 制作想要反映在情節提要上的類型的子類,例如在這里的示例中,我將UILabel子類化為DGlabel

  2. 將其設置為@IBDesignable ,請參見示例

  3. Identity Inspector將該子類分配給組件,請參見屏幕快照 在此處輸入圖片說明
  4. 在子類化的cals中(此處為DGLabel示例),將要在設計中反映出來的屬性/屬性變量聲明為@IBInspectable ,請參見此處的示例,我將borderColor的 標簽@IBInspectable ,這意味着此屬性將在Xcode的屬性檢查器中列出

現在您可以從故事板上更改該屬性的值,如下面的屏幕截圖所示

在此處輸入圖片說明

import UIKit

@IBDesignable
class DGLabel: UILabel {

@IBInspectable var borderColor:UIColor = UIColor.red {
    didSet {
        reflectChange()
    }
}

 override init(frame: CGRect) {
    super.init(frame: frame)
}

 required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

}

func reflectChange() {

    self.layer.borderWidth = 1
    self.layer.borderColor = borderColor.cgColor
        }

}

希望這將使您了解過程。

是的,您可以通過在情節提要的“身份”檢查器下的“用戶定義的運行時屬性”部分中提供運行時屬性來實現。 請參見下面的屏幕快照,以將UILabel的“文本”鍵路徑的運行時值設置為空白。

在此處輸入圖片說明

我認為您可以通過將IBDesignable用於視圖來實現類似的IBDesignable 然后,您可以使用prepareForInterfaceBuilder()TARGET_INTERFACE_BUILDER生成模擬數據以在Interface Builder中顯示。

你是這個意思嗎

在此處輸入圖片說明

您可以從“屬性檢查器”中的情節提要中更改“標簽文本”值。

暫無
暫無

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

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