Swift에서 iPhone의 화면 너비를 가져오는 방법UI?
이미지 프레임의 크기를 아이폰 화면의 너비와 동일한 값(화면 너비)을 사용하는 정사각형으로 조정하려고 합니다.
다음 코드는 이미지에 동일한 보기 높이를 제공하므로 작동하지 않습니다.
var body: some View {
Image("someImage")
.resizable()
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .center)
.clipped()
}
다음을 생성할 수 있습니다.UIScreen
동일한 연장.예:
extension UIScreen{
static let screenWidth = UIScreen.main.bounds.size.width
static let screenHeight = UIScreen.main.bounds.size.height
static let screenSize = UIScreen.main.bounds.size
}
용도:
UIScreen.screenWidth
let placeholder = UIImage(systemName: "photo")! // SF Symbols
struct ContentView: View {
var body: some View {
GeometryReader { geometry in
Image(uiImage: placeholder)
.resizable()
.frame(width: geometry.size.width, height: geometry.size.width, alignment: .center)
// .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .center)
.clipped()
}
}
}
UIScreen.main.bounds.width 또는 .height를 사용할 수 있습니다.
.frame(
width:UIScreen.main.bounds.width,
height:UIScreen.main.bounds.height
)
환경 키를 사용하여 다음과 같은 솔루션을 만들었습니다.
private struct MainWindowSizeKey: EnvironmentKey {
static let defaultValue: CGSize = .zero
}
extension EnvironmentValues {
var mainWindowSize: CGSize {
get { self[MainWindowSizeKey.self] }
set { self[MainWindowSizeKey.self] = newValue }
}
}
그런 다음 창이 생성된 위치에서 크기를 읽습니다.
var body: some Scene {
WindowGroup {
GeometryReader { proxy in
ContentView()
.environment(\.mainWindowSize, proxy.size)
}
}
}
마지막으로 Swift에서 창 크기를 직접 확인할 수 있습니다.UI 보기는 장치 회전 또는 MacOS의 창 크기 조정 시 동적으로 변경됩니다.
@Environment(\.mainWindowSize) var mainWindowSize
가장 간단한 방법은 이미지 크기를 조정하고 가로 세로 비율을 1.0으로 설정하는 것입니다.
var body: some View {
Image("someImage")
.resizable()
.aspectRatio(1.0, contentMode: .fit)
}
언급URL : https://stackoverflow.com/questions/57727107/how-to-get-the-iphones-screen-width-in-swiftui
'programing' 카테고리의 다른 글
테이블의 열 이름이 동일한 레코드에 대해 여러 테이블을 쿼리하는 방법 (0) | 2023.08.05 |
---|---|
UIColor를 Swift로 변환하는 방법UI의 색 (0) | 2023.08.05 |
HTML에서 구성 요소의 선택 도구 태그 제거/바꾸기 (0) | 2023.07.31 |
Just SecurityError: 불투명 원본에 localStorage를 사용할 수 없습니다. (0) | 2023.07.31 |
내림차순 날짜순 정렬 - 월, 일 및 연도 (0) | 2023.07.31 |