使用 SnapKit 对 UIView 进行约束但啥也不显示
Posted
技术标签:
【中文标题】使用 SnapKit 对 UIView 进行约束但啥也不显示【英文标题】:use SnapKit make constraint to a UIView but show nothing使用 SnapKit 对 UIView 进行约束但什么也不显示 【发布时间】:2017-12-23 02:00:28 【问题描述】:来自“单一视图应用程序”模板的一个完全清晰的新 swift 项目。 当我确保可以正确导入 SnapKit 时。 我只是播放非常简单的代码来显示一个矩形:
let test = UIView()
test.backgroundColor = UIColor.green
test.frame.size = CGSize(width: 500, height: 300)
self.view.addSubview(test)
test.snp.makeConstraints (maker) in
// maker.top.equalTo(30)
// maker.centerX.equalTo(self.view)
// maker.height.equalTo(100)
将此代码放入 "UIViewController.swift" 的 func viewDidLoad 中。 从现在开始,对 SnapKit 的事情进行了评论,并且工作正常!如图片所示: work fine snap(use frame.size) 但是当我取消注释 SnapKit 的东西时,它什么都没有显示!像这样: work bad snap(use SnapKit)
所以,请帮我找出问题所在,谢谢!
【问题讨论】:
我通常讨厌我现在要给出的那种评论(一个不回答问题,而是做出不受欢迎的基于意见的观察的评论),但我希望它能帮助你开发商。你为什么要使用 3rd-party API 来处理像约束这样简单和基本的事情?你真的应该使用 3rd-party APIs 当你基本上有点不得不像谷歌地图......再次,在我看来。 ?????? 【参考方案1】:如果使用约束,则无需设置帧大小。
你的代码应该是这样的:
let test = UIView()
test.backgroundColor = UIColor.green
self.view.addSubview(test)
test.snp.makeConstraints (make) in
make.top.equalTo(30)
make.centerX.equalToSuperview()
make.height.equalTo(300)
make.width.equalTo(500)
【讨论】:
尝试在您的答案中添加一些代码以帮助清晰。以上是关于使用 SnapKit 对 UIView 进行约束但啥也不显示的主要内容,如果未能解决你的问题,请参考以下文章
如何获取已通过 snapkit 设置的 UIView 的框架