我是iOS开发的新手,对我来说最困难的事情之一是所有“自动布局”内容。我正在尝试创建一个简单的应用程序,该应用程序显示一条消息,说明用户正在运行该应用程序的iOS版本尚未经过测试,因此可能会发生错误或意外情况,因为它是越狱应用程序。
警告是一个简单的UIView
,带有两个标签和一个按钮,其宽度和高度与UIView
相同。
该警告占用了我想用于其他用途的空间,因此当用户点击该警告时,该警告就会隐藏。
我使用self.unstableWarning.isHidden = true
,但是,正如预期的那样,它仅隐藏UIView。
在警告下方,我有一个UIScrollView
,我想占用警告使用的空间,因此当警告隐藏时,我希望UIScrollView
移动,以便剩下空白。
以下是我的一些应用代码:
@IBOutlet weak var unstableWarning: UIView!
@IBAction func errMessageButton(_ sender: UIButton) {
let alert = UIAlertController(title: "Unstable build or iOS version", message: "This version of Thunderbolt (" + projectVersion + ") hasn't been tested on your platform/iOS version (" + UIDevice.current.systemVersion + "), or very little tested, so expect bugs or unexpected things to occur. Thanks for using Thunderbolt ;)", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { action in
self.unstableWarning.fadeOut()
self.unstableWarning.isHidden = true
}))
self.present(alert, animated: true)
}
如何在Swift中实现这一目标?
预先感谢
答案 0 :(得分:2)
有多种方法可以做到这一点。我会列举我的想法:
使用stackView,尽管如此,您可能需要为警告视图设置恒定的高度。在此垂直stackView中,添加警告视图和scrollView。如果警告视图被隐藏,则scrollView将自动获取整个stackView。
在隐藏警告视图后操纵scrollView顶部约束。
将scrollView的顶部添加到警告视图的底部,并将警告视图的alpha设置为val lines = Source
.fromResource("doc-topics-new.txt")
.getLines
.toList
.drop(1) match {
case Nil => List.empty
case x :: xs => x.split(" ").drop(2).mkString(" ") :: xs
}
,然后根据所需位置将其移动到上方。