İçeriğe geç

SwiftUI ile UIViewRepresentable kullanımı

Merhabalar bu yazımda SwiftUI içerisinde UIKit nesnelerini nasıl kullanabileceğinizi sizlerle paylaşacağım.

UIKit içerisinde bulunan UITextView, UISearchBar vs gibi elementleri SwiftUI içerisinde kullanabilirsiniz. Bu işlem için ara bir sınıf oluşturarak UIViewRepresentable protokolünü bağlamanız ve içerisindeki fonksiyonları kullanmanız gerekir.

Aşağıda örnekte UIActivityIndicatorView sınıfını SwiftUI ile kullanımını görelim.

import UIKit
import SwiftUI

struct ActivityIndicator: UIViewRepresentable {
    
    @Binding var isAnimating: Bool
    
    func makeUIView(context: Context) -> UIActivityIndicatorView {
        let activityView = UIActivityIndicatorView()
        activityView.style = .large
        activityView.tintColor = .black
        return activityView
    }
    
    func updateUIView(_ uiView: UIActivityIndicatorView, context: Context) {
        if isAnimating {
            uiView.startAnimating()
        } else {
            uiView.stopAnimating()
        }
    }
}

Yazdığımı ara sınıfı uygulamamızda kullanalım.

struct ContentView:View {
    
    @State var activity:Bool = false
    
    var body: some View {
        VStack {
            ActivityIndicator(isAnimating: $activity)
            Button(action: {
                self.activity.toggle()
            }) {
                Text(activity ? "Stop Loader" : "Start Loader")
            }
        }
    }
}

 

 

Tarih:SwiftUI

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2021 Kenan Atmaca