Я ищу способ отключить жест увеличения «щепотку увеличения» в реализации IOS WKWebView. Существует свойство BOOL для увеличения, доступное для OS X, но похоже, что оно не доступно на iOS.Отключить жест увеличения в WKWebView
WKWebView.h
#if !TARGET_OS_IPHONE
/* @abstract A Boolean value indicating whether magnify gestures will
change the web view's magnification.
@discussion It is possible to set the magnification property even if
allowsMagnification is set to NO.
The default value is NO.
*/
@property (nonatomic) BOOL allowsMagnification;
Я также попытался взглянуть на жест распознавателей в WKWebView, но это, кажется, поднимая пустой массив. Я предполагаю, что фактические распознаватели более глубже в структуре компонента (довольно сложные, по внешнему виду), и, скорее всего, не захотят их копать, если это вообще возможно.
Я знаю о возможных хаках, которые могут потенциально отключить жест от стрельбы (выборочно передавая жесты в WebView, добавляя дочерний вид, чтобы захватить жест щепотки и т. Д.), Но я всегда обнаружил, что они вводят лаг в событие и хотят сохраните реализацию как можно чистую/взломанную, насколько это возможно.
Не забудьте добавить соответствие 'UIScrollViewDelegate', установите' webView.scrollView.delegate = self; 'и смените указатель делегата на' deinit'. –
Это следует отметить как правильный ответ. Родное решение для iOS вместо того, чтобы пытаться ввести JS. – C6Silver
Я не согласен. Хотя собственное решение было бы идеальным, я думаю, что это решение столь же хакерское, как и JS, и, возможно, более хрупкое. Хотя WKWebView поддерживает UIScrollView, внутренне использует WKScrollView.Хотя это подкласс UIScrollView, он игнорирует/переопределяет много стандартного поведения (contentInset для одного). Масштабирование HTML-документа очень отличается от масштабирования UIView, поэтому я мог видеть будущее, когда это изменяется или больше не работает. Поскольку решение JS использует стандарты W3C, оно всегда должно поддерживаться. – Kevin