swiftui - 确定填充以将 Button 正确放置在顶部尾角?
问题描述
在隐藏状态栏的应用程序中,SwiftUI 中是否有一些东西可以帮助将按钮正确放置在顶部尾角?
它看起来正确所需的填充似乎取决于设备类型(显示器的有或没有缺口/“角半径”随设备尺寸而变化)。隐藏状态栏的顶部将没有安全区域插图。
如何确定此类按钮的正确填充?有没有比检查特定设备类型/屏幕尺寸更好的方法?
示例代码:
// SwiftUIPlayground
// https://github.com/ralfebert/SwiftUIPlayground/
import Foundation
import SwiftUI
struct CloseButtonExampleView: View {
var body: some View {
Color.yellow
.ignoresSafeArea()
.overlay(self.closeButton, alignment: .topTrailing)
}
@ViewBuilder var closeButton: some View {
Button(
action: {},
label: {
ZStack {
Circle()
.foregroundColor(.green)
.frame(width: 30, height: 30)
Image(systemName: "xmark")
.foregroundColor(.white)
}
}
)
.padding(16) // <-- what's the correct value?
}
}
struct CloseButtonExampleView_Previews: PreviewProvider {
static var previewView: some View {
CloseButtonExampleView()
}
static var previews: some View {
previewView
.previewDevice(PreviewDevice(rawValue: "iPhone SE (2nd generation)"))
previewView
.previewDevice(PreviewDevice(rawValue: "iPhone 12"))
previewView
.previewDevice(PreviewDevice(rawValue: "iPhone 12 Pro Max"))
}
}
解决方案
推荐阅读
- php - 通过 PHP 连接时,用户的 MS SQL Native Client 登录失败
- vba - 如何重新格式化显示的日期?
- reactjs - 无法读取未定义的属性“地图”,但我实际上可以在控制台中看到数据
- git - 如何列出当前正在验证的拉取请求中更改的所有文件(在 VSTS 中)?
- javascript - 获取 Ajax 调用未命中控制器操作
- php - 连接 Webserver 到 swift 以调整音量
- angular - Ionic ngFor 当我从另一个页面返回原始页面时复制项目
- html - 如何通过 CSS 将 div 附加到页面顶部?
- python - 为什么 pygame.KEYUP 事件在 key 没有被释放的时候触发?
- grails-2.0 - 有时 flash.message 显示,有时不显示