我正在尝试创建自定义框架,以便我可以使用@IBDesignable在故事板中呈现我的视图。通常,您可以单击故事板中的视图,然后从检查器的下拉列表中选择一个类。因为我必须从下拉列表中分配我的自定义框架,所以我现在必须在我的框架中创建一个自定义子视图并分配我的类((这是我从cocoapods JWGCircleCounter
下载的图形圈计数器中的一个类).I& #39;我不知道如何在Swift的XCode 6中的S中执行此操作。以下是我的自定义框架的代码:
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)
}
答案 0 :(得分:1)
您应该将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
)的实例传递给超类(UIView
),而不是反之亦然。参考Polymorphism
编辑:对于可可豆荚,您可以尝试
选择您的项目文件(右上角的蓝色)并进入Build Settings
。然后,为项目文件(蓝色)和自定义框架目标
'Allow non-modular includes in Framework Modules'
并将其设置为是