View
协议的一个扩展,提供了条件视图修饰符。
ViewCondition
增强了 SwiftUI 的条件渲染能力,使开发者更容易创建自适应和响应式的用户界面。 使用 ViewCondition
,您可以轻松地应用修饰符、控制可见性或隐藏视图,这些操作基于各种条件,例如布尔逻辑、操作系统或模块可用性。 这种灵活性允许您为不同的平台和用户需求定制应用程序的界面,而无需复杂的条件语句。
您可以在这里找到文档: https://kevinhermawan.github.io/ViewCondition/documentation/viewcondition
您可以使用 Swift Package Manager 将 ViewCondition
作为依赖项添加到您的项目,方法是将其添加到您的 Package.swift
的 dependencies 值中。
dependencies: [
.package(url: "https://github.com/kevinhermawan/ViewCondition.git", .upToNextMajor(from: "2.0.0"))
]
或者,在 Xcode 中
File
-> Swift Packages
-> Add Package Dependency...
https://github.com/kevinhermawan/ViewCondition.git
Add Package
。if
修饰符允许您有条件地将修改应用于视图。
Text("Hello, World!")
.if(someCondition) { view in
view.foregroundColor(.red)
}
Text("Hello, World!")
.if(os: .iOS) { view in
view.padding()
}
Text("Hello, World!")
.if(canImport: .uiKit) { view in
view.foregroundColor(.blue)
}
Text("Hello, World!")
.if([condition1, condition2, condition3]) { view in
view.bold()
}
Text("Hello, World!")
.if(os: [.iOS, .macOS]) { view in
view.font(.largeTitle)
}
Text("Hello, World!")
.if(canImport: [.uiKit, .appKit]) { view in
view.italic()
}
visible
修饰符控制视图的可见性。
Text("I'm visible!")
.visible(if: someCondition)
Text("I might be removed")
.visible(if: someCondition, removeCompletely: true)
Text("iOS Only")
.visible(on: .iOS)
Text("UIKit Available")
.visible(ifCanImport: .uiKit)
Text("All conditions must be true")
.visible(if: [condition1, condition2, condition3])
Text("iOS or macOS")
.visible(on: [.iOS, .macOS])
Text("UIKit or AppKit")
.visible(ifCanImport: [.uiKit, .appKit])
hide
修饰符控制视图的隐藏。
Text("I'm hidden!")
.hide(if: someCondition)
Text("I might be removed")
.hide(if: someCondition, removeCompletely: true)
Text("Hidden on iOS")
.hide(on: .iOS)
Text("Hidden if UIKit is available")
.hide(ifCanImport: .uiKit)
Text("Hidden if all conditions are true")
.hide(if: [condition1, condition2, condition3])
Text("Hidden on iOS or macOS")
.hide(on: [.iOS, .macOS])
Text("Hidden if UIKit or AppKit is available")
.hide(ifCanImport: [.uiKit, .appKit])