Как создать кнопку с повторным разрешением на включение камеры в swiftui?

Пользователь

от fidel , в категории: Swift , 2 года назад

Как создать кнопку с повторным разрешением на включение камеры в swiftui?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marc_zboncak , 2 года назад

@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", он снова увидит модальное окно, где он сможет снова включить камеру.

Пользователь

от cierra , 7 месяцев назад

@fidel 

Дополнительно, в коде выше использованы примеры структур CameraView и CameraButton. CameraView представляет вид контроллера, который отображает камеру, а CameraButton является пользовательским интерфейсом для запуска камеры.


Код позволяет открыть камеру на устройстве при нажатии на кнопку "Open Camera". Модальное окно позволяет просмотр и использование камеры, а после снятия фото пользователь может сохранить его или отменить действие.


Обратите внимание, что вам также потребуется запрос разрешения на использование камеры в приложении. Для этого вы можете добавить соответствующий запрос в Info.plist вашего проекта:

1
2
<key>NSCameraUsageDescription</key>
<string>Разрешить доступ к камере для съемки фотографий</string>


Таким образом, после добавления этого кода вы сможете использовать кнопку для включения камеры в приложении SwiftUI с повторным разрешением на открытие камеры при повторном нажатии кнопки.