Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在textFieldDidBeginEditing上显示带有xib的UIView_Ios_Swift_Uitextfield_Addsubview_Custom View - Fatal编程技术网

Ios 在textFieldDidBeginEditing上显示带有xib的UIView

Ios 在textFieldDidBeginEditing上显示带有xib的UIView,ios,swift,uitextfield,addsubview,custom-view,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, o

我用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中执行此操作(我在主视图中有一个textfield):

我在屏幕上看到一个红方块,但它不会“加载”xib

我问的不是好问题还是做错了什么?你们能告诉我正确的方向吗


我在这里检查了所有类似的问题,却找不到解决方案。

最愚蠢的事情是,我用init(frame)初始化了我的视图,而没有将我的xib放在屏幕上。这项工作:

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

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

如果使用xib创建自定义视图,则必须使用此
NSBundle.mainBundle().loadNibNamed(“customNib”,所有者:self,选项:nil)”加载它。
然后分配其帧,然后将其添加到子视图。你这样做会得到什么结果?你可以把这个答案作为你问题的答案,而不是接受它。。。你永远不知道什么时候会有人犯同样的错误。
override init(frame: CGRect) {
    super.init(frame: frame)

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