视图层次结构没有为约束做好准备

     2023-03-15     303

关键词:

【中文标题】视图层次结构没有为约束做好准备【英文标题】:The view hierarchy is not prepared for the constraint 【发布时间】:2015-07-13 09:00:03 【问题描述】:

我得到一个错误:

当我运行下面的代码时,我的每个约束都位于UIView 类中:

func addIcon(iconImage: UIImage) 
    // Creating imageView
    var icon = UIImageView()
    icon.image = iconImage
    icon.contentMode = .ScaleAspectFit

    // Adding to self
    self.addSubview(icon)

    // Setting constraints
    setTranslatesAutoresizingMaskIntoConstraints(false)

    var leading = NSLayoutConstraint(
        item: icon,
        attribute: .Leading,
        relatedBy: .Equal,
        toItem: self,
        attribute: .Leading,
        multiplier: 1,
        constant: 8)
    icon.addConstraint(leading)

    var centerY = NSLayoutConstraint(
        item: icon,
        attribute: .CenterY,
        relatedBy: .Equal,
        toItem: self,
        attribute: .CenterY,
        multiplier: 1,
        constant: 0)
    icon.addConstraint(centerY)

    var top = NSLayoutConstraint(
        item: icon,
        attribute: .Top,
        relatedBy: .GreaterThanOrEqual,
        toItem: self,
        attribute: .Top,
        multiplier: 1,
        constant: 8)
    icon.addConstraint(top)

    var bottom = NSLayoutConstraint(
        item: icon,
        attribute: .Bottom,
        relatedBy: .GreaterThanOrEqual,
        toItem: self,
        attribute: .Bottom,
        multiplier: 1,
        constant: 8)
    icon.addConstraint(bottom)

    var width = NSLayoutConstraint(
        item: icon,
        attribute: .Width,
        relatedBy: .Equal,
        toItem: nil,
        attribute: .NotAnAttribute,
        multiplier: 1,
        constant: 20)
    icon.addConstraint(width)

有人知道我做错了什么吗?

【问题讨论】:

在构造函数中定义约束或覆盖布局子视图。还要检查您是否将约束添加到父级。 setTranslatesAutoresizingMaskIntoConstraints 必须在 crated 视图上调用。此外,您必须将约束添加到超级视图而不是 icon 【参考方案1】:

感谢 roronoa zorro 和 pe60t0,我发现我应该在相关视图上执行此操作,而不仅仅是 setTranslatesAutoresizingMaskIntoConstraints(false),所以:icon.setTranslatesAutoresizingMaskIntoConstraints(false)。 在创建视图时也应该添加约束,所以我调用 override layoutSubviews() 并将它们添加到那里。 最后,我应该将约束添加到超级视图,而不是我“为其制作约束”的视图。所以我应该写:self.addConstraint(top),而不是icon.addConstraint(top)

【讨论】:

视图层次结构没有为约束做好准备:无法找到问题

】视图层次结构没有为约束做好准备:无法找到问题【英文标题】:Viewhierarchyisnotpreparedfortheconstraint:UnabletoFindtheIssue【发布时间】:2016-10-1820:32:02【问题描述】:以下是正在使用的约束。【参考方案1】:在视图属于同一视图层... 查看详情

Swift,约束,视图层次结构没有为约束做好准备

】Swift,约束,视图层次结构没有为约束做好准备【英文标题】:Swift,Constraint,Theviewhierarchyisnotpreparedfortheconstraint【发布时间】:2014-12-1402:10:27【问题描述】:我正在尝试在导航控制器中添加图像并将其居中。所以我确实有一个im... 查看详情

uiscrollview的自动布局,视图层次结构没有为约束做好准备

】uiscrollview的自动布局,视图层次结构没有为约束做好准备【英文标题】:uiscrollview\'sautolayout,Theviewhierarchyisnotpreparedfortheconstraint【发布时间】:2015-04-1004:30:35【问题描述】:我想使用自动布局将滚动图像视图添加到滚动视图。... 查看详情

在扩展中出现错误“视图层次结构没有为约束做好准备”

】在扩展中出现错误“视图层次结构没有为约束做好准备”【英文标题】:Gettingtheerrorinanextension\'Theviewhierarchyisnotpreparedfortheconstraint\'【发布时间】:2019-10-0413:31:57【问题描述】:我在thumbnailImageView之上添加thumbnailMaskView并且它... 查看详情

“视图层次结构没有为约束做好准备”错误 Swift 3

】“视图层次结构没有为约束做好准备”错误Swift3【英文标题】:"Theviewhierarchyisnotpreparedfortheconstraint"errorSwift3【发布时间】:2017-04-1611:38:36【问题描述】:我正在尝试添加一个按钮并以编程方式设置约束,但我不断收到... 查看详情

即使在添加子视图之后,视图层次结构也没有为约束做好准备

】即使在添加子视图之后,视图层次结构也没有为约束做好准备【英文标题】:ViewHierarchyNotPreparedforConstraintsEvenAfterAddingSubviews【发布时间】:2015-10-0610:02:18【问题描述】:我正在尝试实现一个集合视图,其中每个单元格都有可... 查看详情

为编程视图层次结构设置自动布局约束?

】为编程视图层次结构设置自动布局约束?【英文标题】:Settingupautolayoutconstraintsforprogrammaticviewhierarchy?【发布时间】:2013-06-2707:53:58【问题描述】:我正在像这样以编程方式创建视图层次结构:UIWindow*window=[[UIWindowalloc]initWithFra... 查看详情

错误:线程 1:“无法设置未准备好约束的视图层次结构的布局。”使用自动布局时

】错误:线程1:“无法设置未准备好约束的视图层次结构的布局。”使用自动布局时【英文标题】:Error:Thread1:"Impossibletosetuplayoutwithviewhierarchyunpreparedforconstraint."whenusingautolayout【发布时间】:2021-11-2318:30:04【问题描述】... 查看详情

视图层次结构未准备好

】视图层次结构未准备好【英文标题】:viewhierarchyisnotprepared【发布时间】:2016-02-2520:59:56【问题描述】:我是一名新手Swift开发人员,在一本优秀的iOS9Swift书籍中遵循代码示例。这本书刚刚演示了如何在视图层次结构的两个不... 查看详情

iOS:以编程方式更改从 Interface Builder 设置的约束

...友们,美好的一天!我未能尝试通过代码为在IB中设置的视图设置动画。应用程序崩溃,原因如下:视图层次结构没有为约束做好准备...我在这里看到了一些类似的问题,原因总是以编 查看详情

用于设置自动布局约束的 iOS 视图层次结构

】用于设置自动布局约束的iOS视图层次结构【英文标题】:iOSViewHierarchyforsettingupAutoLayoutConstraint【发布时间】:2013-01-1911:49:45【问题描述】:视图控制器中与self.navigationController.navigationBar和self.view的子视图最近的祖先是什么,以... 查看详情

iOS 程序约束:“在容器层次结构中找不到视图”

】iOS程序约束:“在容器层次结构中找不到视图”【英文标题】:iOSProgramaticConstraints:\'Viewnotfoundincontainerhierarchy\'【发布时间】:2015-01-2117:12:19【问题描述】:我的iOS自定义UITableViewCell需要以下布局:|查看基本信息|长长的矩形... 查看详情

约束或其锚点是不是引用不同视图层次结构中的项目?这是违法的

】约束或其锚点是不是引用不同视图层次结构中的项目?这是违法的【英文标题】:Doestheconstraintoritsanchorsreferenceitemsindifferentviewhierarchies?That\'sillegal约束或其锚点是否引用不同视图层次结构中的项目?这是违法的【发布时间】:... 查看详情

由于我的视图层次结构,显然没有调用 viewWillAppear

】由于我的视图层次结构,显然没有调用viewWillAppear【英文标题】:viewWillAppearnotcalledapparentlyduetomyviewhierarchy【发布时间】:2021-03-0102:44:22【问题描述】:这似乎是一个有据可查的问题,但在线解决方案没有奏效。以下是未能为... 查看详情

宽度约束更新后视图未重绘

】宽度约束更新后视图未重绘【英文标题】:Viewisnotredrawingafterwidthconstraintupdate【发布时间】:2016-12-2008:55:35【问题描述】:我有以下情况:UIImageView它的宽度需要在特定事件上增加。当我尝试增加它时,约束在增加,但视图没... 查看详情

数据库系统的结构抽象

...介质上的数据,含存储路径、存储方式、索引方式等三级视图ExternalSchema---(External)View外模式某一用户能够看到与处理的数据的结构描述(Conceptual)Schema——ConceptualView概念模式从全局角度理解/管理数据的结构描述,含相应的... 查看详情

为啥 Xcode 模拟器视图与视图层次结构视图不同

】为啥Xcode模拟器视图与视图层次结构视图不同【英文标题】:WhyXcodesimulatorviewisdifferentfromview-hierarchyview为什么Xcode模拟器视图与视图层次结构视图不同【发布时间】:2019-01-2002:10:57【问题描述】:我正在使用自动布局约束在UICol... 查看详情

有没有办法重置整个视图控制器层次结构?

】有没有办法重置整个视图控制器层次结构?【英文标题】:IsthereanywaytoresetthewholeviewControllerhierachy?【发布时间】:2016-09-0508:35:31【问题描述】:我有一个viewControllerA,它会被视图B(presented)推送和视图C(pushed)推送到viewController层... 查看详情