我正在尝试创建一个自定义框架,以便我可以使用@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
的实例,因为 JWGCircleCounter
是 UIView
的子类。
由于 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)
}
JWGCircleCounter
是 UIView
的子类,它已经覆盖了 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/