繁体   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