关键词:
【中文标题】视图层次结构没有为约束做好准备【英文标题】: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层... 查看详情