加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 如何在Xcode playground中使用自动布局约束显示视图?

发布时间:2020-12-15 01:49:00 所属栏目:百科 来源:网络整理
导读:我试图在XCode playground中显示配置了autolayout约束的视图,但它似乎不起作用.这就像游乐场完全忽略了约束,我无法在任何地方找到有关此问题的信息. 这是我试过的代码: let view = UIView()view.frame = CGRectMake(0,400,200)view.backgroundColor = UICol
我试图在XCode playground中显示配置了autolayout约束的视图,但它似乎不起作用.这就像游乐场完全忽略了约束,我无法在任何地方找到有关此问题的信息.

这是我试过的代码:

let view = UIView()
view.frame = CGRectMake(0,400,200)
view.backgroundColor = UIColor.lightGrayColor()

let label = UILabel() // I can only see the label if I set a frame
         // UILabel(frame: CGRectMake(0,200,50))
label.backgroundColor = UIColor.greenColor()
label.text = "I am a label"
label.setTranslatesAutoresizingMaskIntoConstraints(false)
view.addSubview(label)

let views = ["label":label]
let options = NSLayoutFormatOptions(0)

let cs1 = NSLayoutConstraint.constraintsWithVisualFormat(
    "H:|-[label]-|",options: options,metrics: nil,views:views )

let cs2 = NSLayoutConstraint.constraintsWithVisualFormat(
    "V:|-[label]-|",views:views )

view.addConstraints(cs1)
view.addConstraints(cs2)

提前致谢

解决方法

话虽如此,您可以使用PlaygroundPage的liveView属性来预览您的UI.

import PlaygroundSupport

PlaygroundPage.current.needsIndefiniteExecution = true
PlaygroundPage.current.liveView = myLiveView

这是一个link,进一步扩展了这一点.

如果它不起作用,你可能需要触发layoutIfNeeded,但这不应该真正解决自Swift 4以来的问题

此外,在视图中包含translatesAutoresizingMaskIntoConstraints = false.喜欢:

import PlaygroundSupport

myLiveView.translatesAutoresizingMaskIntoConstraints = false
PlaygroundPage.current.needsIndefiniteExecution = true
PlaygroundPage.current.liveView = myLiveView

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读