Как устранить PDFView "тень страницы"? - PullRequest
0 голосов
/ 20 мая 2018

Когда iOS PDFView добавляется в UIView, область страницы PDFView добавляет тенеподобную границу.Есть ли способ устранить тень?

Я знаю несколько грязных способов сделать это: расширить границы за пределами экрана, наложить белый UIView, чтобы скрыть тени, или изменить частный PDFPageView (чтобы закрепитьк часам).Я специально не хочу, чтобы границы были за кадром, и предпочитаю не связываться с другими хаки.

Пример прилагается.(Форма IRS используется, например, здесь; приложение не имеет ничего общего с IRS ...) enter image description here

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Обновление: Apple ответила на мой радар, что новое свойство, PDFView.pageShadowsEnabled, было добавлено в iOS 12, бета-версия 3. Теперь это правильный способ скрыть тень.Ура!

https://developer.apple.com/documentation/pdfkit/pdfview/3013838-pageshadowsenabled?changes=latest_minor

Информация для Pre-iOS 12 ниже:

Я подтвердил, что в Apple (WWDC 2018 lab) нет официального способа скрыть тень.Мне сказали, что для этого есть метод только для внутреннего использования, и попросили подать радар для раскрытия этого метода.Радар # 40847614 если кто-то хочет обмануть.

Тем временем я углубляюсь в иерархию представлений и ограничиваю все до предела.Мне это не нравится, но, похоже, работает.Тень возвращается при вращении, поэтому я вызываю это как в viewWillAppear, так и в viewWillTransitionToSize.

-(void)removeShadowFromPDFView:(UIView *)view {
    //Deep-dive into pdfView and set all views to clipsToBounds = YES

    view.clipsToBounds = YES;

    if ([view subviews].count == 0) {
        //No subviews to examine
        return;
    }

    for (UIView *subview in view.subviews) {
        view.clipsToBounds = YES;
        [self removeShadowFromView:subview];
    }
}
0 голосов
/ 20 мая 2018

У меня была похожая проблема с разделенной панелью просмотра.Что я сделал, так это изучил каждое представление во вложенных представлениях, и каждое из их вложенных представлений, также слоев, пока не идентифицировал проблемное представление (заняло некоторое время).Затем я просто сделал это представление скрытым или непрозрачным.

Когда я проверял подкласс uiview, я не хардкорно назвал имя, а построил его со строкой форматирования, чтобы не запускать какой-либо автоматический тест моего приложения (которыйОдобрено Apple).

...