Xcode 8 ile bu artık mümkün, ancak bunu başarmanın yolu en azını söylemek biraz zor. Ama hey, çalışan bir çözüm çalışan bir çözümdür, değil mi? Açıklamama izin ver.
WKWebView initWithCoder: artık "NS_UNAVAILABLE" olarak açıklamalı değil. Şimdi aşağıda gösterildiği gibi görünüyor.
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
WKWebView'ı alt sınıflayarak başlayın ve initWithCoder'ı geçersiz kılın. Super initWithCoder'ı çağırmak yerine, initWithFrame: configuration: gibi farklı bir init yöntemi kullanmanız gerekecektir. Aşağıdaki hızlı örnek.
- (instancetype)initWithCoder:(NSCoder *)coder
{
CGRect frame = [[UIScreen mainScreen] bounds];
WKWebViewConfiguration *myConfiguration = [WKWebViewConfiguration new];
self = [super initWithFrame:frame configuration:myConfiguration];
self.translatesAutoresizingMaskIntoConstraints = NO;
return self;
}
Storyboard'unuzda bir UIView kullanın ve ona yeni alt sınıfınızın özel bir sınıfını verin. Gerisi her zamanki gibi iştir (otomatik düzen kısıtlamalarının ayarlanması, görünümü bir denetleyicideki bir prize bağlama vb.).
Son olarak, WKWebView, içeriği UIWebView'dan farklı şekilde ölçeklendirir. Pek çok kişi, WKWebView'ün bu bağlamda UIWebView davranışını daha yakından takip etmesini sağlamak için, UIWebView ile aynı büyütme oranını oluşturmak için içeriği ölçeklendirmekten WKWebView'daki basit tavsiyeleri takip etmek isteyecektir .