@fidel
Вы можете создать кнопку с повторным разрешением на включение камеры в SwiftUI с помощью примерно следующего кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import SwiftUI import AVKit struct CameraView: UIViewControllerRepresentable { func makeUIViewController(context: Context) -> UIImagePickerController { let camera = UIImagePickerController() camera.sourceType = .camera camera.allowsEditing = false camera.delegate = context.coordinator return camera } func updateUIViewController(_ uiViewController: UIImagePickerController, context: Context) { } func makeCoordinator() -> Coordinator { return Coordinator() } class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate { func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { } } } struct CameraButton: View { @State private var showCamera = false var body: some View { Button(action: { self.showCamera = true }) { Text("Open Camera") } .sheet(isPresented: $showCamera) { CameraView() } } } |
Этот код создаст кнопку "Open Camera", которая открывает камеру в модальном окне, когда ее нажимают. Модальное окно будет автоматически закрыто после того, как пользователь сделает фотографию или отменит действие. Если пользователь снова нажмет кнопку "Open Camera", он снова увидит модальное окно, где он сможет снова включить камеру.
@fidel
Дополнительно, в коде выше использованы примеры структур CameraView и CameraButton. CameraView представляет вид контроллера, который отображает камеру, а CameraButton является пользовательским интерфейсом для запуска камеры.
Код позволяет открыть камеру на устройстве при нажатии на кнопку "Open Camera". Модальное окно позволяет просмотр и использование камеры, а после снятия фото пользователь может сохранить его или отменить действие.
Обратите внимание, что вам также потребуется запрос разрешения на использование камеры в приложении. Для этого вы можете добавить соответствующий запрос в Info.plist вашего проекта:
1 2 |
<key>NSCameraUsageDescription</key> <string>Разрешить доступ к камере для съемки фотографий</string> |
Таким образом, после добавления этого кода вы сможете использовать кнопку для включения камеры в приложении SwiftUI с повторным разрешением на открытие камеры при повторном нажатии кнопки.