IBDesignable视图中的IBInspectable按钮

时间:2019-01-21 10:45:09

标签: ios swift

我在IBDesignable视图中有一个IBInspectable按钮。 我尝试了几件事,但是运行程序时未显示图标。 最糟糕的是:我可以在视图内的情节提要中看到它,但是未设置运行图标。

我在做什么错,我听不懂

@IBDesignable class CustomView: UIView {
   @IBOutlet weak var firstIcon: UIButton!

    //Not working
    override func prepareForInterfaceBuilder() {
      let designTimeBundle = Bundle(for: CustomView.self)

      let image = UIImage(named: "home", in: designTimeBundle, 
      compatibleWith: nil)

      firstIcon.setImage(image, for: .normal)
   }
   //Not working either
   @IBInspectable var firstButtonIcon: UIButton {
    let bundle = Bundle(for: CustomView.self)
    let image = UIImage(named: "home", in: bundle, 
    compatibleWith: nil)
    firstIcon.setImage(image, for: .normal)

    return firstIcon
   }

   //And still not
   @IBInspectable var firstButtonIcon: UIButton! {
    firstIcon.setImage(UIImage(named: "home"), for: .normal)

    return firstIcon
   } 
}

1 个答案:

答案 0 :(得分:0)

您的代码将永远无法使用。首先阅读有关如何使用IBInspectable的文档。它适用于UIImageUIColorFloatIntDouble等类型的变量。它永远不适用于UIButton类型的变量。另外,如果将它们与IBDesignable一起使用以显示在情节提要中,则必须具有相同的getter和setter方法。

我建议您应该阅读一些有关如何以及何时使用IBDesignalbeIBInspectable的好教程或文档