在 iOS 相机应用程序中,在拍照按钮的正上方,您可以滑动选择不同的选项:照片、视频、肖像、全景等。
这个功能是如何使用 SwiftUI 构建的?
您可以在 SwiftUI 中使用
Picker
创建类似的功能,以允许用户在相机按钮上方选择多种拍摄模式(照片、视频、肖像、全景等)。
import SwiftUI
struct ContentView: View {
@State private var selectedMode = CaptureMode.photo
enum CaptureMode: String, CaseIterable {
case photo = "PHOTO"
case video = "VIDEO"
case portrait = "PORTRAIT"
case pano = "PANO"
// Add more capture modes as needed
}
var body: some View {
VStack {
// Camera view here
Picker("Capture Mode", selection: $selectedMode) {
ForEach(CaptureMode.allCases, id: \.self) { mode in
Text(mode.rawValue).tag(mode)
}
}
.pickerStyle(SegmentedPickerStyle())
Button("Take Picture") {
// Handle capturing the image or video based on selectedMode
switch selectedMode {
case .photo:
capturePhoto()
case .video:
captureVideo()
case .portrait:
capturePortrait()
case .pano:
capturePanorama()
}
}
.padding()
}
}
func capturePhoto() {
// Implement photo capture logic
}
func captureVideo() {
// Implement video capture logic
}
func capturePortrait() {
// Implement portrait capture logic
}
func capturePanorama() {
// Implement panorama capture logic
}
}
@main
struct YourApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
要允许用户选择捕获模式,请使用
Picker
和 SegmentedPickerStyle
。所选模式保存在 selectedMode
状态变量中。构造一个 CaptureMode
枚举来反映可能的捕获模式。可以根据需要添加更多模式。 “拍照”按钮根据所选的拍摄模式执行操作。您可以在每个操作中添加独特的逻辑来捕获照片、电影、肖像、全景或其他捕获模式(例如,capturePhoto()
)。此示例展示了如何使用 SwiftUI 创建允许用户选择多种拍摄模式的相机应用程序控件。