Ios 自定义UIView类-Swift

Ios 自定义UIView类-Swift,ios,swift,uiview,Ios,Swift,Uiview,我构建了一个视图,它从底部显示,过一段时间后隐藏,效果很好,但我想在UIView类中将其作为一个模式,我查看了互联网,但我无法获得或理解如何做到这一点 snake = UIView(frame: CGRect(x: 0 , y: self.view.frame.size.height-66, width: self.view.frame.size.width, height: 66)) snake.backgroundColor = UIColor(red: 50/255, green: 50/

我构建了一个视图,它从底部显示,过一段时间后隐藏,效果很好,但我想在
UIView
类中将其作为一个模式,我查看了互联网,但我无法获得或理解如何做到这一点

snake = UIView(frame: CGRect(x: 0 , y: self.view.frame.size.height-66, width: self.view.frame.size.width, height: 66))
snake.backgroundColor = UIColor(red: 50/255, green: 50/255, blue: 50/255, alpha: 1.0)


let label = UILabel(frame: CGRect(x: 12, y: 8, width: snake.frame.size.width-90, height: 50))
label.text = "Connection error please try again later!!"
label.textColor = UIColor.whiteColor()
label.numberOfLines = 0
label.font = UIFont.systemFontOfSize(14)
snake.addSubview(label)

let button = UIButton(frame: CGRect(x: snake.frame.size.width-87, y: 8, width: 86, height: 50))
button.setTitle("OK", forState: UIControlState.Normal)
button.setTitleColor(UIColor(red: 76/255, green: 175/255, blue: 80/255, alpha: 1.0), forState: UIControlState.Normal)
button.addTarget(self, action: "hideSnackBar:", forControlEvents: UIControlEvents.TouchUpInside)
snake.addSubview(button)
self.view.addSubview(snake)
如何从这个类开始我不知道,我正在用它的框架以编程方式创建视图,我需要设置按钮或标签的属性,并从任何类创建视图

class snake: UIView {


    override init (frame : CGRect) {
        super.init(frame : frame)

    }

    convenience init () {
        self.init(frame:CGRect.zero)
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("This class does not support NSCoding")
    }

}
代码:

并使用它:

let snakeView = snake(frame: CGRectMake(0 ,self.view.frame.size.height-66, self.view.frame.size.width, 66)))
并为snakeview设置数据:

snakeView.label.text = "hello"
但通常我会创建一个函数来更新视图中的数据:

func updateData(title:String){
    self.label.text = title
}
并在需要时呼叫:

snake.updateData("hello")
p/s:如果使用xib,则必须实现awakeFromNib而不是init。并使用xib创建snake(记住为xib设置标识符:“snakeView”):


很好,但还有一个问题,如果我需要在使用视图时为标签设置属性,怎么可能?我需要一个setter,但你能给我举个例子吗?@Nguyen Hoan不是一个类,如何将此代码推入结构中?因为它是一个自定义UIView,所以它需要是一个类,而不是结构。
snake.updateData("hello")
let snakeView = NSBundle.mainBundle().loadNibNamed("snakeView", owner: nil, options: nil)[0] as snakeView