Con Xcode 8 esto ahora es posible, pero el medio para lograrlo es un poco complicado por decir lo menos. Pero bueno, una solución funcional es una solución funcional, ¿verdad? Dejame explicar.
InitWithCoder de WKWebView: ya no está anotado como "NS_UNAVAILABLE". Ahora se ve como se muestra a continuación.
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
Comience subclasificando WKWebView y anule initWithCoder. En lugar de llamar a super initWithCoder, deberá usar un método de inicio diferente, como initWithFrame: configuration :. Ejemplo rápido a continuación.
- (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;
}
En su Storyboard, use un UIView y asígnele una clase personalizada de su nueva subclase. El resto es negocio como de costumbre (establecer restricciones de diseño automático, vincular la vista a una salida en un controlador, etc.).
Finalmente, WKWebView escala el contenido de manera diferente a UIWebView. Es probable que muchas personas quieran seguir el simple consejo de Suppress WKWebView para escalar el contenido para renderizarlo con el mismo aumento que UIWebView para hacer que WKWebView siga más de cerca el comportamiento de UIWebView en este sentido.