界面生成器中的 iOS Swift 3.0 自定义视图导致重新编译和错位

Posted

技术标签:

【中文标题】界面生成器中的 iOS Swift 3.0 自定义视图导致重新编译和错位【英文标题】:iOS Swift 3.0 custom view in interface builder causes recompiling and misplacements 【发布时间】:2017-02-02 13:44:01 【问题描述】:

我确实制作了一些自定义视图,以便能够在不同的控制器 .xib 文件中重用它们。

我确实使用以下方法初始化它们:

var view: UIView!
var nibName = "MyCustomView"

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


required init?(coder aDecoder: NSCoder) 
    super.init(coder: aDecoder)
    initialize()


private func initialize() 
    self.backgroundColor = Theme.colorTransparent

    let bundle = Bundle(for: type(of: self))
    let nib = UINib(nibName: self.nibName, bundle: bundle)
    self.view = nib.instantiate(withOwner: self, options: nil).first as! UIView
    self.view.frame = self.bounds
    self.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    addSubview(self.view)
    clearErrors()

但是每次我打开一个包含至少一个自定义视图的控制器 .xib 文件时,XCode 都会开始重新编译。 有时所有视图(不仅是自定义视图)的位置和大小也会失真。然后我必须等待重新编译完成,然后才能单击黄色三角形来修复错位。

这种行为很烦人……

你能帮我避免错位和重新编译,以便一切顺利和快速运行吗?

顺便说一句:自定义视图确实可以正常工作,只是等待重新编译和错位,我无法修复

非常感谢

【问题讨论】:

您使用的是 xcode 8.0 吗?比检查这个链接***.com/questions/39492765/… 我用的是Xcode 8.2.1,问题没有解决 【参考方案1】:

尝试:编辑器 > 自动刷新视图 > 取消选中。 这应该会停止不断的重建,但是是的,它看起来就像另一个恼人的 Xcode 错误。

【讨论】:

以上是关于界面生成器中的 iOS Swift 3.0 自定义视图导致重新编译和错位的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 自定义响应从 Alamofire v1.3 迁移到 3.0(和 Swift 2 语法)

自定义幻灯片 Segue - Xcode 8.0 Swift 3.0

想要使用 Swift 3.0 发送自定义电子邮件,即来自 firebase 的欢迎邮件

在 Swift 3.0 中设置 Alamofire 自定义目标文件名而不是使用建议的DownloadDestination

想知道如何以编程方式在 swift 3.0 中对 UITableViewCell 进行子类化?

自定义按钮在界面生成器中未正确显示