如何在接口构建器中的框架中使用UIView子类

时间:2019-05-17 17:11:20

标签: ios swift xcode frameworks interface-builder

问题

我已经开始将代码分成模块,因此我创建了一个名为GEView的框架。

问题出在界面生成器中。 UIView使用以下框架进行子类化:

Custom class

但是,我看不到任何@IBInspectable属性。当此类在项目中而不是分离到框架中时,它确实起作用了。如何查看这些内容,以便更改属性?

框架类

/// UIView subclass to allow creating corners, shadows, and borders in storyboards.
@IBDesignable
open class GEView: UIView {

    /* ... */


    // MARK: - Rounded corners
    @IBInspectable
    public var cornerRadius: CGFloat = 0 {
        didSet {
            layer.cornerRadius = self.cornerRadius
            layer.masksToBounds = true
        }
    }


    /* ... */
}

框架实施

Frameworks

我什至在包含该视图的界面构建器中为此视图控制器的类中添加了import GEView,仍然无法使用。

这是我第一次在项目中使用自己的框架,因此我可能会错误地创建或导入它。这是项目层次结构:

App hierarchy

半劳作法

我设法使Interface Builder至少可以识别GEView类。我在项目中尝试了以下代码:

@IBDesignable
class IBGEView: GEView {

    @IBInspectable
    var _cornerRadius: CGFloat { return cornerRadius }
}

然后,我将在Interface Builder中使用IBGEView进行子类化。这绝不是我一直在寻找的解决方案,因此我仍在寻找。 这不是解决方案。

1 个答案:

答案 0 :(得分:0)

我认为您还需要指定模块。通常,它是框架的名称。从目标中取消选中模块,然后在其中写入框架名称