Xcode 8 के साथ यह अब संभव है, लेकिन इसे प्राप्त करने का साधन कम से कम कहने के लिए थोड़ा हैकी है। लेकिन हे, एक काम समाधान एक काम कर समाधान है, है ना? मुझे समझाने दो।
WKWebView का initWithCoder: अब "NS_UNAVAILABLE" के रूप में एनोटेट नहीं किया जाता है। यह अब नीचे दिखाया गया है।
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
WKWebView को ओवरक्लास करके शुरू करें और initWithCoder को ओवरराइड करें। सुपर initWithCoder को कॉल करने के बजाय, आपको initWithFrame: कॉन्फ़िगरेशन: जैसे एक अलग init पद्धति का उपयोग करने की आवश्यकता होगी। त्वरित उदाहरण नीचे।
- (instancetype)initWithCoder:(NSCoder *)coder
{
// An initial frame for initialization must be set, but it will be overridden
// below by the autolayout constraints set in interface builder.
CGRect frame = [[UIScreen mainScreen] bounds];
WKWebViewConfiguration *myConfiguration = [WKWebViewConfiguration new];
// Set any configuration parameters here, e.g.
// myConfiguration.dataDetectorTypes = WKDataDetectorTypeAll;
self = [super initWithFrame:frame configuration:myConfiguration];
// Apply constraints from interface builder.
self.translatesAutoresizingMaskIntoConstraints = NO;
return self;
}
अपने स्टोरीबोर्ड में, एक UIView का उपयोग करें और इसे अपने नए उपवर्ग का एक कस्टम वर्ग दें। बाकी हमेशा की तरह व्यवसाय है (ऑटो-लेआउट की बाधाओं को स्थापित करना, एक नियंत्रक में आउटलेट के दृश्य को जोड़ना, आदि)।
अंत में, WKWebView UIWebView को अलग तरह से सामग्री देता है। बहुत से लोग संभवतः WKWebView को दबाने के लिए WWWebView को स्केलिंग कंटेंट से समान आवर्धन पर प्रस्तुत करना चाहते हैं क्योंकि UIWebView इस संबंध में UIWebView व्यवहार का अधिक बारीकी से पालन करता है।