ios – Swift,iboutlet和自定义控件

ios – Swift,iboutlet和自定义控件,第1张

概述我可能正在做一些非常愚蠢的事情,但是我似乎无法使用Interface Builder将IBOutlet变量连接到自定义视图,而只能在 Swift中使用. 我创建了一个名为MyView的类,它从UIView扩展.在我的控制器中,我有一个MyView变量(声明为@IBOutlet var newView:MyView).我进入IB并将一个UIView拖到窗口上,并给它一个MyView类. 每当我在Ob 我可能正在做一些非常愚蠢的事情,但是我似乎无法使用Interface Builder将IBOutlet变量连接到自定义视图,而只能在 Swift中使用.

我创建了一个名为MyVIEw的类,它从UIVIEw扩展.在我的控制器中,我有一个MyVIEw变量(声明为@IBOutlet var newVIEw:MyVIEw).我进入IB并将一个UIVIEw拖到窗口上,并给它一个MyVIEw类.

每当我在Objective C中完成类似的 *** 作,我可以点击应用程序窗口顶部的“视图控制器”按钮,选择该变量并将其拖动到控件中以将两者链接在一起.当我在Swift尝试的时候,它拒绝承认这个观点.

如果我将控制器中的变量的类更改为UIVIEw,它可以正常工作.但不是我的自定义视图.

有其他人有这个问题吗?这是一个功能,还是只是我的愚蠢?

控制器代码

import UIKitclass VIEwController: UIVIEwController {    @IBOutlet var newVIEw:MyVIEw    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        // Do any additional setup after loading the vIEw,typically from a nib.    }    overrIDe func dIDReceiveMemoryWarning() {        super.dIDReceiveMemoryWarning()        // dispose of any resources that can be recreated.    }}

视图代码

import UIKitclass MyVIEw: UIVIEw {    init(frame: CGRect) {        super.init(frame: frame)        // Initialization code    }    /*    // Only overrIDe drawRect: if you perform custom drawing.    // An empty implementation adversely affects performance during animation.    overrIDe func drawRect(rect: CGRect)    {        // Drawing code    }    */}
解决方法 我有一个类似的问题,我认为这部分是缓存问题,部分只是一个Xcode6 / Swift问题.我发现的第一步是要确保在选择“自动”时,视图控制器.swift文件将被加载到助手编辑器中.

使用Xcode找到这两个文件是链接的,我有时可以控制 – 拖动从视图/按钮/等.从IB到.swift文件,但是经常不得不从@IBOutlet var newVIEw:MyVIEw行中的空圈中拖动到我想要匹配的视图.

如果您无法在助手编辑器中加载该文件,那么我发现执行以下 *** 作通常会工作:

>从IB视图中删除自定义类
>清理项目(cmd K)
关闭/重新打开Xcode
>可能再次清洁?
>将自定义类添加回视图
>希望它的作品:)

如果这似乎让你一半/无处添加一个评论,我会看看它是否触发了我做的任何事情

总结

以上是内存溢出为你收集整理的ios – Swift,iboutlet和自定义控件全部内容,希望文章能够帮你解决ios – Swift,iboutlet和自定义控件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1096153.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存