【问题标题】:Storyboard UICollectionViewCell shows up, then goes blank故事板 UICollectionViewCell 出现,然后变为空白
【发布时间】:2018-10-15 11:50:00
【问题描述】:

问题:

我正在我的 Storyboard/Interface Builder 上处理 UIViewController,其中有一个 UICollectionView,它定义了一个 UICollectionViewCell。每次我在此单元格中更改某些内容时,它的所有子视图都会变为空白,从而无法看到任何内容。此外,当我更新约束时,即使我刷新,框架也不会移动,就像整个界面构建器坏了一样。仅针对此UIViewController,有时也针对其他人。 Interface Builder Builds 显示来自 Pod 的警告(我情不自禁)。我没有破坏约束。

(非常)临时解决方案:

如果我退出 Xcode,清理,重建并重新打开 Storyboard,它将恢复“几乎”正常(意味着并非所有视图都正确显示,但至少我可以看到它们并且它不是全白的),直到我切换到另一个文件并返回。当我回到故事板将再次空白。有时我必须删除我的 DerivedData 并且单元格将显示完美。只有几分钟。

另外,我没有任何限制警告或任何东西。

编辑:我从单元格中的所有视图中删除了所有类,以防万一我的自定义视图中的某些东西导致了这些问题。我的视图主要实现图层和渐变,所以我认为我可能做错了什么,破坏了 IB 渲染。在单元格的顶部有一个我制作的自定义UIView,它使用CAGradientLayer。如果我从此视图中删除该类,则单元格将再次开始显示。但我不能确定这就是原因,因为当我离开情节提要并重新开始时,单元格将再次变白。无需将课程放回原处。

EDIT2:我卸载并重新安装了 Xcode 和 cocoapods。更新了豆荚。创建了一个新的 xcworspace。

截图

关于我的环境的详细信息

我正在使用 Swift、XCode 9.3、Cocoapods 1.5.0、High Sierre 10.13.4 随意询问任何其他细节 我的 Pod(由于 swift 4 的兼容性而产生大量警告):

  pod 'FBSDKLoginKit'
  pod 'FBSDKCoreKit'
  pod 'FSPagerView'
  pod 'CropViewController'
  pod 'SwiftLint'
  pod 'Parse'
  pod 'Parse/FacebookUtils'
  pod 'ImagePicker'
  pod 'XLPagerTabStrip', '~> 8.0'
  pod 'Eureka'

【问题讨论】:

  • 也许你可以从后到前重新排列视图
  • 是的,我已经尝试了一切。它不会改变任何东西。除非我删除 DerivedData 并且它有效!
  • 你在使用@IBDesignable 类吗?
  • 我用的是FSPagerView框架,好像会导致渲染问题...否则没有
  • 您在使用两个 Xcode 版本吗?有时 Xcode 行为不端,当我们打开两个版本时。

标签: ios swift storyboard interface-builder xcode9


【解决方案1】:

您应该在 awakeFromNib 方法中调用超级父级。

您必须调用 awakeFromNib 的超级实现,以使父类有机会执行它们需要的任何其他初始化。

override func awakeFromNib() {
  super.awakeFromNib()
  setup()
}

【讨论】:

  • prepareForInterfaceBuilder也需要调用super
【解决方案2】:

可以是您的依赖项之一,请查看这些依赖项上的问题

尝试一一删除你的依赖。

【讨论】:

    【解决方案3】:

    问题是由 Cocoapods 和 Xcode 引起的。

    首先,通过在另一台机器上克隆我的项目,我意识到我的 Xcode 没有显示 Interface Builder 错误,而只是显示警告。

    如何显示 Interface Builder 错误?

    在 Xcode 的左侧窗格(具有文件层次结构的窗格)中,单击看起来像漫画气泡的最后一项。您将看到构建、工作区和界面构建器错误。由于某种原因,我的 Xcode 不会显示任何内容,所以我第二次重新安装了 Xcode。

    如何正确重新安装 Xcode ?

    只需删除所有这些文件:

    /Applications/Xcode.app
    /Library/Preferences/com.apple.dt.Xcode.plist
    ~/Library/Preferences/com.apple.dt.Xcode.plist
    ~/Library/Caches/com.apple.dt.Xcode
    ~/Library/Application Support/Xcode
    ~/Library/Developer
    ~/Library/Developer/Xcode
    ~/Library/Developer/CoreSimulator
    

    来源:How to Completely Uninstall Xcode and Clear All Settings

    然后,Xcode 向我显示了这个错误:

    最后,我可以确认删除与此框架相关的pod 将停止破坏我的故事板。 通过在互联网上查看更多内容,我发现这是一个与框架签名相关的实际问题,由可可豆荚引起。

    我卸载了Cocoapods1.5.0并重新安装了1.4.0版本。

    sudo gem uninstall cocoapods
    sudo gem install cocoapods -v 1.4.0
    

    来源:Xcode - @IBDesignables - Required code signing missing for X.framework

    已修复所有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多