que era capaz de hacer esto mediante la adición de subvistas blancas a la parte superior e inferior de ScrollView de la vista Web. Controlo el contenido de WebView, así que sé que el blanco está bien; esto no funcionará si está cargando contenido arbitrario.
// _topCover and _bottomCover are ivar UIViews
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
// with cover views 300pt high, I couldn't scroll far enough to see the shadow,
// even in portrait on an iPad, which gives you the longest scroll distance
CGFloat coverage = 300;
_topCover = [[UIView alloc] initWithFrame:CGRectMake(0, -coverage, webView.bounds.size.width, coverage)];
_bottomCover = [[UIView alloc] initWithFrame:CGRectMake(0, webView.scrollView.contentSize.height, webView.bounds.size.width, coverage)];
_topCover.backgroundColor = [UIColor whiteColor];
_bottomCover.backgroundColor = [UIColor whiteColor];
// in case the webView is resized, e.g. by rotating the device
_topCover.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth;
_bottomCover.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;
[webView.scrollView addSubview:_topCover];
[webView.scrollView addSubview:_bottomCover];
}
lo funciono después de la página se carga de manera que webView.scrollView.contentSize.height
me dará la altura correcta. No estoy seguro de cómo funcionará si tus páginas cambian dinámicamente de altura. Mi página se carga solo una vez; si la tuya se está recargando, querrás omitir ejecutar alloc
/init
en _topCover
y _bottomCover
después de la primera vez por eficiencia.
Actualización: No estoy seguro de que mi uso de autoresizingMask
, anterior, sea suficiente cuando la vista gira.Puede que tenga que poner esto en el UIViewController
que contiene su UIWebView
cambiar el tamaño de las cubiertas después de rotar:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat coverage = 300;
_topCover.frame = CGRectMake(0, -coverage, self.webView.bounds.size.width, coverage);
_bottomCover.frame = CGRectMake(0, self.webView.scrollView.contentSize.height, self.webView.bounds.size.width, coverage);
}
me gustaría descubra esto también, ya que eso haría que el rebote se vea bien en un UIWebView ... –
Sí, esto es más molesto, también estaría interesado en una solución – MrCranky
posible duplicado de [¿Quitar UIWebView Shadow?] (http://stackoverflow.com/questions/1074320/remove-uiwebview-sh adorar) – JosephH