我在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
   }
}

最佳答案

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

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

10-07 19:51
查看更多