在textFieldDidBeginEditing上使用xib显示UIView

时间:2014-12-20 16:30:36

标签: ios swift uitextfield addsubview custom-view

我使用xib创建了一个自定义uiview类,我希望能够使用textFieldDidBeginEditing在屏幕上显示它,但我似乎无法弄明白。

在myCustomView中:

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    //Load the interface

    NSBundle.mainBundle().loadNibNamed("customNib", owner: self, options: nil)
    self.addSubview(self.view)
}


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

我所做的和工作是在IB中我在我的界面中放置了一个视图并将其链接到我的customView类。

现在,我想以编程方式使用自定义类显示此视图。

如果我在textFieldDidBeginEditing中执行此操作(我在主视图中有一个文本字段):

var myView: myCustomView = myCustomView(frame:CGRectMake(100, 100, 100, 100))
    myView.backgroundColor = UIColor.redColor()

self.view.addSubview(myView)

我在屏幕上看到一个红色正方形,但它没有"加载" xib。

我不是问这个好问题,还是我做错了什么?你们能帮助我朝正确的方向发展吗?

我在这里完成了所有类似的问题,无法找到解决方案。

1 个答案:

答案 0 :(得分:-1)

只是最愚蠢的事情,我用init(框架)初始化myView并且没有将我的xib放在屏幕上。这有效:

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

    NSBundle.mainBundle().loadNibNamed("customNib", owner: self, options: nil)
    self.addSubview(self.view)
}