Com o Xcode 8 isso agora é possível, mas o meio de alcançá-lo é um pouco hacky, para dizer o mínimo. Mas hey, uma solução funcional é uma solução funcional, certo? Deixe-me explicar.
InitWithCoder de WKWebView: não está mais anotado como "NS_UNAVAILABLE". Agora se parece com o mostrado abaixo.
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
Comece criando uma subclasse de WKWebView e substitua initWithCoder. Em vez de chamar super initWithCoder, você precisará usar um método init diferente, como initWithFrame: configuration :. Exemplo rápido abaixo.
- (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;
}
Em seu Storyboard, use um UIView e dê a ele uma classe personalizada de sua nova subclasse. O resto é business as usual (definir restrições de layout automático, vincular a visualização a uma saída em um controlador, etc.).
Finalmente, WKWebView dimensiona o conteúdo de maneira diferente para UIWebView. Muitas pessoas provavelmente vão querer seguir o conselho simples em Suprimir WKWebView do escalonamento do conteúdo para renderizar na mesma ampliação que o UIWebView faz para fazer com que o WKWebView siga mais de perto o comportamento do UIWebView a esse respeito.