storyboard - 如何在 Swift 中将类分配给自定义 UIView?

标签 storyboard swift interface-builder

我正在尝试创建一个自定义框架,以便我可以使用@IBDesignable 在 Storyboard 中呈现我的 View 。通常,您可以单击 Storyboard中的 View ,然后从检查器的下拉列表中选择一个类。由于我必须从下拉列表中分配我的自定义框架,我现在必须在我的框架内创建一个自定义 subview 并分配我的类((这是我从 cocoapods JWGCircleCounter 下载的图形圆形计数器的类)。我不确定如何在 Swift 中的 XCode 6 中执行此操作。到目前为止,这是我的自定义框架的代码:

import UIKit
@IBDesignable
class CircleTimer: UIView {
    override func layoutSubviews() {
        super.layoutSubviews()
        var outerCircle = UIView.class(JWGCircleCounter)(frame CGRectmake: 22, 137, 125, 125)        //This is my guess at how to assign the class, thought of course it doesn't work. I'm also not sure where to delcare the frame after assigning the class
    self.addSubview(outerCircle)
}

最佳答案

您应该创建 JWGCircleCounter 的实例,因为 JWGCircleCounterUIView 的子类。 由于 JWGCircleCounter 有初始化器 init(frame:CGRect) 你可以调用它来创建实例。

同样在 swift

class CircleTimer: UIView {
override func layoutSubviews() {
    super.layoutSubviews()
    var outerCircle:JWGCircleCounter = JWGCircleCounter(frame: CGRectMake(22, 137, 125, 125))       //This is my guess at how to assign the class, thought of course it doesn't work. I'm also not sure where to delcare the frame after assigning the class
    self.addSubview(outerCircle)
}

JWGCircleCounterUIView 的子类,它已经覆盖了 init(frame:) 所以你可以调用它来创建一个实例。

请注意,您应该始终将子类 (JWGCircleCounter) 的实例传递给父类(super class) (UIView),反之亦然。引用 Polymorphism

编辑:对于 cocoa pod ,您可以尝试

选择您的项目文件(右上角的蓝色)并进入Build Settings。然后,找到 'Allow non-modular includes in Framework Modules' 并将其设置为 YES,对于项目文件(蓝色)和自定义框架目标

关于storyboard - 如何在 Swift 中将类分配给自定义 UIView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070871/

相关文章:

ios - 我无法设置 UINavigationBar 标题项。我该如何设置?

Cocoa:NSArrayController 的自定义 Controller key

xcode - 使用 Storyboard更改 NSWindow 大小

ios - 在 Storyboard中实现 tableView didSelectRowAtIndexPath

ios - 从 Storyboard更改选项卡栏图标/文本色调颜色

ios - 如何使用 firebase 在 swift 代码上创建搜索字段?

objective-c - Swift (DBCamera) 无法识别 Obj C Init

ios - show Question 显示问题(null)而不是存储在数组中的问题

objective-c - 无法呈现 IB Designables 的实例

objective-c - Cocoa 绑定(bind)调用 valueForKey : instead of valueForKeyPath: