Удалить тень UIWebView?

Я исправил эту проблему, используя apt-cyg (отличный установщик, похожий на apt-get), чтобы легко загрузить CA-сертификаты (включая Git и многие другие):

apt-cyg install ca-certificates

Примечание : сначала следует установить apt-cyg. Вы можете сделать это из командной строки Windows:

cd c:\cygwin
setup.exe -q -P wget,tar,qawk,bzip2,subversion,vim

Закрыть Windows cmd и открыть Cygwin Bash:

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /bin
31
задан 2 July 2009 в 13:25
поделиться

7 ответов

Я посмотрел на свойства класса и ничего не нашел, но могу придумать две стратегии «прикрытия»:

1. Вы можете использовать другое представление (родительское для веб-представления), чтобы обрезать границы веб-представления.
2. Вы можете добавить еще один вид поверх веб-просмотра, чтобы покрыть необходимую область цветом, который соответствует цвету фона, вы можете использовать uiimage с прозрачной областью в центре.

Кстати, мне не нравится этот стандартный фон представлений таблиц: P, но его изменение может быть головной болью: P

1
ответ дан 27 November 2019 в 21:28
поделиться

I've had a look around and can't see anything related to it. Apart from masking it with a view or clipping it somehow, the only thing I can think of is to loop through all of the UIWebView subviews (and sub-subviews etc.) and see if you can see anything there!

0
ответ дан 27 November 2019 в 21:28
поделиться

Я могу ошибаться, но я Думаете, тень появляется только тогда, когда мы прокручиваем веб-просмотр, не так ли? В таком случае, вы хотите предотвратить прокрутку или действительно скрыть тень? Я не знаю никаких советов, которые скрывали бы тень. Чтобы отключить прокрутку, я бы установил для UserInteractionEnabled значение NO.

0
ответ дан 27 November 2019 в 21:28
поделиться

Существует частный метод с селектором setAllowsRubberBanding: который принимает значение типа BOOL. Если передано NO, вы не сможете прокручивать веб-представление за верхнюю или нижнюю часть области содержимого, но все равно сможете прокручивать веб-представление в обычном режиме. К сожалению, этот метод является частным, и ваше приложение, скорее всего, не будет допущено в магазин, если вы его используете.

Вы можете, однако, потенциально попробовать извлечь реализацию метода и привязать ее к другому селектору, который вы создали , используя динамический характер среды выполнения Objective-C.

Тем не менее, метод является частным и может больше не существовать в будущих версиях ОС. Если вы все еще хотите попробовать, вот пример кода, который извлечет реализацию метода setAllowsRubberBanding: и вызовет его за вас.

5
ответ дан 27 November 2019 в 21:28
поделиться

Это можно сделать без использования частных API. Все, что вам нужно сделать, это скрыть каждый UIImageView с тенью в нем. Вот код:

for (int x = 0; x < 10; ++x) {
    [[[[[webView subviews] objectAtIndex:0] subviews] objectAtIndex:x] setHidden:YES];
}
4
ответ дан 27 November 2019 в 21:28
поделиться

Маленький цикл for очень опасен, потому что он может дать сбой, если Apple изменит количество подпредставлений.

таким образом он, по крайней мере, не дает сбоев, когда что-то меняется:

if ([[webView subviews] count] > 0)
{
    for (UIView* shadowView in [[[webView subviews] objectAtIndex:0] subviews])
    {
        [shadowView setHidden:YES];
    }

    // unhide the last view so it is visible again because it has the content
    [[[[[webView subviews] objectAtIndex:0] subviews] lastObject] setHidden:NO];
}
14
ответ дан 27 November 2019 в 21:28
поделиться

Это более чистая альтернатива раствору «Николай Криль». Это скрывает только UIImageView в UIWebView, но не UIWebBrowserView.

for (UIView *view in [[[webView subviews] objectAtIndex:0] subviews]) { 
  if ([view isKindOfClass:[UIImageView class]]) view.hidden = YES;
}   

Спасибо Джеймс

71
ответ дан 27 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: