必须将自动调整大小掩码转换为约束才能具有 _setHostsLayoutEngine:YES Xcode 13

con*_*teu 22 uikit ios autolayout ios15 xcode13

我已将我的项目更新到 Xcode 13 和 iOS 15。现在应用程序崩溃,并出现与 UITableViewCells 中自动调整蒙版大小相关的错误。我尝试将检查器中的 UITableViewCells Layer 属性更改为 Inferred 并按照这篇文章进行操作,但它们都不起作用。

你遇到过这个问题吗。如何修复它?

以下是有关该错误的一些信息:

错误图像

界面生成器配置映像

override func awakeFromNib() {
    super.awakeFromNib()
    selectionStyle = .none
    setupEventAction()
    configureAccessibilityForCellItem()
}

override func prepareForReuse() {
    super.prepareForReuse()
    eventView.eventImageView.image = nil
}

func configureAnnouncement(announcement: AnnouncementsRowItem, isWhiteCell: Bool = false) {
    eventView.isHidden = announcement.event == nil
    eventView.backgroundView.backgroundColor = isWhiteCell ? R.color.basic1_bg() : R.color.basic2_bg()
    if announcement.event?.eventID.isEmpty ?? false || !isWhiteCell {
        self.backgroundColor = R.color.basic2_bg()
    }
    bubbleView.configureAnnouncementsBubbleView(announcement: announcement)
    eventView.configureAnnouncementsEventView(announcement: announcement)
    layoutIfNeeded()
}

private func setupEventAction() {
    eventView.isUserInteractionEnabled = true
    let gesture = UITapGestureRecognizer(target: self, action: #selector(showEvent))
    gesture.numberOfTapsRequired = 1
    eventView.addGestureRecognizer(gesture)
}

@objc
func showEvent() {
    openEventClicked?()
}
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 22

我也遇到过同样的问题。尝试以下操作:将 UITableViewCell 的 *.xib 作为源代码打开(上下文菜单/“打开为”/“源代码”)。找到“tableViewCell”和“tableViewCellContentView”标签,删除其“translatesAutoresizingMaskIntoConstraints”属性(带值),删除其子标签“autoresizingMask”(如果存在)。

https://i.stack.imgur.com/bDSJ3.png


HAK*_*HAK 9

我认为这与 Xcode 13 有关,并且特别针对 xib 文件中的单元格。对我来说,它第一次在 Xcode 13.2.1 上崩溃。以前我使用过几个版本的 Xcode 12,但它从未崩溃过。

Content View我的单元格的已经xib设置为,Autoresizing Mask但对于单元格本身,布局设置为Inferred(Constraints)。所以我将其更改为Autoresizing Mask并停止崩溃。

  1. Content View布局设置为Autoresizing Mask 在此输入图像描述

  2. Cell布局设置为Autoresizing Mask 在此输入图像描述


Jav*_*cke 7

我的问题通过不同的解决方案得到解决,虽然错误相同,但原因不同。我的单元格内的视图被分配了与单元格相同的类,通过删除该类,错误得到解决。 与 TableViewCell 具有相同类的 TableViewCell 内部视图