Dengan Xcode 8 sekarang ini mungkin, tetapi cara untuk mencapainya sedikit rumit untuk sedikitnya. Tapi, hei, solusi yang berhasil adalah solusi yang berhasil, bukan? Biar saya jelaskan.
InitWithCoder WKWebView: tidak lagi dianotasi sebagai "NS_UNAVAILABLE". Sekarang terlihat seperti yang ditunjukkan di bawah ini.
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
Mulailah dengan membuat subkelas WKWebView dan mengganti initWithCoder. Alih-alih memanggil super initWithCoder, Anda harus menggunakan metode init yang berbeda, seperti initWithFrame: configuration :. Contoh cepat di bawah ini.
- (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;
}
Di Storyboard Anda, gunakan UIView dan berikan kelas kustom dari subclass baru Anda. Sisanya adalah bisnis seperti biasa (menyetel batasan tata letak otomatis, menghubungkan tampilan ke outlet di pengontrol, dll).
Terakhir, WKWebView menskalakan konten secara berbeda dengan UIWebView. Banyak orang mungkin ingin mengikuti saran sederhana di Suppress WKWebView dari penskalaan konten untuk merender pada pembesaran yang sama seperti yang dilakukan UIWebView untuk membuat WKWebView lebih dekat mengikuti perilaku UIWebView dalam hal ini.