iOS - 屏幕顶部的可隐藏 UIView

标签 ios iphone swift

我想创建一个信息 View ,它将显示在屏幕顶部并在一段时间后消失,稍后它可以再次显示等等。

我已经创建了 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 View 。

我将 HEIGHT 设置为我的用户高度 + “状态栏高度”(带电池、Wifi 等的栏)。问题是,有时状态栏高度为 0 而我的 topInfoView 放置不正确。我通过这个获得“状态栏高度”:

func statusBarHeight() -> CGFloat {
    let statusBarSize = UIApplication.shared.statusBarFrame.size
    return Swift.min(statusBarSize.width, statusBarSize.height)
}

但它有时不起作用( View 未初始化?)而且我也不确定新的 iPhone X,其中状态栏的解决方式不同。有没有别的办法,不用计算高度?

最佳答案

使用垂直堆栈 View 。一个接一个垂直放置 tableView,然后垂直放置您的 View 。设置表格 View 的高度。保持堆栈 View 的分布属性为填充。创建 TableView 的导出。通过这种安排,当您隐藏表格 View 时,您的 View 将填满整个区域。当您再次将 TableView 的 isHidden 属性设置为 false 时,您的 TableView 和 View 将显示为原始排列。您可以在隐藏和显示表格 View 时进行动画处理,以提供良好的用户体验。

关于iOS - 屏幕顶部的可隐藏 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46971201/

相关文章:

ios - 如何在 Swift 中的 UITableViewCell 之间插入一个新单元格

iphone - Facebook 安装的参数不返回数据

ios - 内部功能的单元代码测试

ios - 将深度数据(16 位深度)作为辅助数据存储在 JPEG 文件中

iphone - 在 iOS 中使用 Core Data 更新记录

iphone - SQLite 的删除和写入,使用 JSON 数据同步 MySQL 中的远程表

ios - 使选定的按钮标题标签为大写

javascript - Cordova - 从远程 HTML 访问设备功能

iphone - MKCircleview 图纸

xcode - 为 OS X App 更改所选 NSTabView 选项卡的颜色