我想创建一个信息视图,它将显示在屏幕顶部并在一段时间后消失,之后它可以再次显示,等等。
我创建了UIView并设置了约束:
topInfoView.leadingAnchor.constraint(equalTo: mainView.leadingAnchor)
topInfoView.trailingAnchor.constraint(equalTo: smainView.trailingAnchor)
topInfoView.heightAnchor.constraint(equalToConstant: HEIGHT)
封闭状态: topInfoView.topAnchor.constraint(equalTo:mainView.topAnchor,constant:-HEIGHT)
开放状态: topInfoView.topAnchor.constraint(equalTo:mainView.topAnchor,constant:0)
其中mainView
是主UIViewCcontroller
视图。
我将HEIGHT
设置为我的用户身高+“状态栏高度”(带电池的条,Wifi等)。问题是,有时状态栏高度为0而我的topInfoView放置不正确。我通过这个获得“状态栏高度”:
func statusBarHeight() -> CGFloat {
let statusBarSize = UIApplication.shared.statusBarFrame.size
return Swift.min(statusBarSize.width, statusBarSize.height)
}
但它有时不起作用(视图不适用?)而且我也不确定新的iPhone X,状态栏的解决方式不同。有没有其他方法,没有计算高度?
答案 0 :(得分:1)
使用垂直堆栈视图。将tableView和您的视图一个接一个地垂直放置。设置表格视图的高度。将堆栈视图的分布属性保持为填充。创建tableview的出口。通过这种安排,当您隐藏桌面视图时,您的视图将填满整个区域。当您再次将 isHidden属性设置为表格视图的false 时,您的表格视图和视图将显示为原始排列。您可以在隐藏和显示表视图时进行动画处理,以提供良好的用户体验。