【发布时间】:2017-02-12 11:08:28
【问题描述】:
在尝试以编程方式添加约束时参考此问题Making a custom UIView subview that fills its superview。
我正在使用下面的代码以编程方式添加两个约束;但是,我收到“无法解析约束格式”的错误状态,因为相关视图没有超级视图。
private func setupDownView(view: UIView) {
let downView = try? DownView(frame: view.bounds, markdownString: "")
downView!.translatesAutoresizingMaskIntoConstraints = false
let viewsDict = ["view": downView!]
downView!.addConstraint(NSLayoutConstraint.constraints(
withVisualFormat: "V:|-0-[view]-0-|",
options: [],
metrics: nil,
views: viewsDict)[0])
downView!.addConstraint(NSLayoutConstraint.constraints(
withVisualFormat: "H:|-0-[view]-0-|",
options: [],
metrics: nil,
views: viewsDict)[0])
view.addSubview(downView!);
}
view auto 添加到其子视图后是否会成为超级视图?
我尝试在通过addSubview 在addConstraint 之前设置约束之前添加视图,但我收到错误“视图层次结构没有为约束做好准备”。
setupDownView在以下两个地方被调用,
@IBOutlet weak var cardTags: UIView! {didSet { setupDownView(view: cardTags)}}
@IBOutlet weak var cardContent: UIView! {
didSet {
setupDownView(view: cardContent)
let tap = UILongPressGestureRecognizer(
target: self,
action: #selector(QuizViewController.tapDownHandler)
)
tap.minimumPressDuration = 0
cardContent.addGestureRecognizer(tap)
}
}
【问题讨论】:
-
你能在下面提供一个答案作为那些有类似问题的参考吗?
-
我添加了我的评论作为答案。
标签: ios swift autolayout