Swift Academy · पाठ

UIViewRepresentable: UIKit Views को लपेटना

SwiftUI में UIKit views के लिए makeUIView, updateUIView लागू करें और उन्हें हटाएँ।

पाठ 1, कुल 4 में से13 चरण

UIViewRepresentable: UIKit Views को लपेटना, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

UIViewRepresentable क्यों?

कई UIKit दृश्यों का अभी तक कोई SwiftUI समकक्ष नहीं है। UIViewRepresentable UIKit दृश्यों को SwiftUI में जोड़ता है।

import SwiftUI
import UIKit

struct WebView: UIViewRepresentable {
  let url: URL
  // ...
}

आवश्यक विधियाँ

दृश्य बनाने के लिए makeUIView और SwiftUI की अवस्था में होने वाले बदलावों को समकालिक करने के लिए updateUIView लागू करें।

func makeUIView(context: Context) -> WKWebView {
  WKWebView()
}
func updateUIView(_ uiView: WKWebView, context: Context) {
  uiView.load(URLRequest(url: url))
}

पूरा WebView उदाहरण

SwiftUI में वेब सामग्री दिखाने के लिए WKWebView को रैप करने वाला एक पूर्ण UIViewRepresentable उदाहरण।

struct WebView: UIViewRepresentable {
  let url: URL
  func makeUIView(context: Context) -> WKWebView { WKWebView() }
  func updateUIView(_ uiView: WKWebView, context: Context) {
    uiView.load(URLRequest(url: url))
  }
}

SwiftUI में उपयोग करना

रैप किए गए दृश्य का उपयोग किसी भी SwiftUI दृश्य की तरह करें और सामान्य रूप से मॉडिफ़ायर लागू करें।

WebView(url: URL(string: "https://apple.com")!)
  .frame(height: 400)
  .cornerRadius(12)

डेटा अंदर भेजना

रैप किए जा सकने वाले घटक के संग्रहीत गुणधर्मों के माध्यम से SwiftUI से UIKit में डेटा भेजें और उसे updateUIView में अपडेट करें।

struct MapView: UIViewRepresentable {
  var region: MKCoordinateRegion
  func makeUIView(context: Context) -> MKMapView { MKMapView() }
  func updateUIView(_ uiView: MKMapView, context: Context) {
    uiView.setRegion(region, animated: true)
  }
}

UIKit दृश्यों को हटाना

दृश्य हटाए जाने पर ऑब्ज़र्वर जैसे संसाधनों को साफ़ करने के लिए वैकल्पिक dismantleUIView लागू करें।

static func dismantleUIView(_ uiView: WKWebView, coordinator: Coordinator) {
  uiView.stopLoading()
}

संदर्भ पैरामीटर

context Coordinator, environment और एनीमेशन लेन-देन तक पहुँच उपलब्ध कराता है।

func updateUIView(_ uiView: MKMapView, context: Context) {
  print(context.environment.colorScheme)  // .light or .dark
}

UIViewRepresentable में परिवेश मान

UIKit कॉन्फ़िगरेशन को अनुकूलित करने के लिए context.environment से SwiftUI के परिवेश मान पढ़ें।

if context.environment.colorScheme == .dark {
  uiView.overrideUserInterfaceStyle = .dark
}

UIKit दृश्यों का आकार निर्धारित करना

UIViewRepresentable आंतरिक सामग्री आकार या SwiftUI फ़्रेम मॉडिफ़ायर का उपयोग करता है। कस्टम आकार निर्धारित करने के लिए sizeThatFits लागू करें।

func sizeThatFits(_ proposal: ProposedViewSize, uiView: WKWebView, context: Context) -> CGSize? {
  CGSize(width: proposal.width ?? 300, height: 400)
}

makeUIView के दुष्प्रभावों से बचना

makeUIView को शुद्ध रखें — इसमें केवल बनाएँ और कॉन्फ़िगर करें। अवस्था से संचालित अपडेट updateUIView में रखें।

// WRONG:
func makeUIView(context: Context) -> MKMapView {
  let v = MKMapView()
  v.setRegion(region, animated: false)  // belongs in updateUIView
  return v
}

सामान्य रूप से रैप किए गए दृश्य

UIViewRepresentable से सामान्यतः रैप किए जाने वाले UIKit दृश्य: डब्ल्यूके वेबव्यू, एमके मैपव्यू, यूआईटेक्स्टव्यू, यूआई इमेज पिकर कंट्रोलर और एवी प्लेयर लेयर।

// UITextView with custom toolbar
struct RichTextEditor: UIViewRepresentable {
  @Binding var text: String
  // makeUIView, updateUIView, Coordinator...
}

त्वरित जाँच

आरंभिक निर्माण के बाद SwiftUI की अवस्था को UIKit दृश्य में समकालिक करने के लिए UIViewRepresentable की कौन-सी विधि कॉल की जाती है?

पाठ का पुनरावलोकन

UIViewRepresentable के लिए makeUIView (एक बार बनाना) और updateUIView (अवस्था में बदलाव पर समकालिक करना) आवश्यक हैं। रूप-रंग को अनुकूलित करने के लिए context.environment का उपयोग करें। dismantleUIView में सफ़ाई करें। आकार नियंत्रित करने के लिए SwiftUI फ़्रेम मॉडिफ़ायर लागू करें।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Swift सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
122
पाठ
409

अक्सर पूछे जाने वाले प्रश्न

क्या “UIViewRepresentable: UIKit Views को लपेटना” पाठ निःशुल्क है?

हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “UIViewRepresentable: UIKit Views को लपेटना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“UIViewRepresentable: UIKit Views को लपेटना” में मैं क्या सीखूँगा?

SwiftUI में UIKit views के लिए makeUIView, updateUIView लागू करें और उन्हें हटाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“UIViewRepresentable: UIKit Views को लपेटना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. UIViewRepresentable: UIKit Views को लपेटना
  2. डेलीगेट संचार के लिए Coordinator पैटर्न
  3. UIViewControllerRepresentable
  4. UIHostingController: UIKit के भीतर SwiftUI
← Swift Academy पर वापस जाएँ