Прозрачный UIPopover - PullRequest
       5

Прозрачный UIPopover

6 голосов
/ 13 января 2011

Есть ли способ сделать UIPopOver прозрачным (альфа = 0,75 или около того).К сожалению, для UIPopOver нет альфа-свойства.Мне нужно представить поповер, чтобы вид под ним все еще был частично виден.Любые идеи

Ответы [ 4 ]

7 голосов
/ 17 февраля 2013

Начиная с iOS5.0, можно предоставить собственный фон для UIPopoverController.Этот фон должен быть получен из UIPopoverBackgroundView, который обеспечивает обычные свойства UIView, такие как alpha.Обратите внимание, что название немного сбивает с толку - UIPopoverBackgroundView предоставляет рамку, стрелку, а также фоновую графику.

Таким образом, если вам нужен полностью полупрозрачный UIPopoverController, все, что вам нужно сделать, это предоставить класс UIPopoverBackgroundView, который устанавливает alpha в сторону значения, меньшего 1.0.Вам также необходимо убедиться, что представление вашего contentViewController (полностью) прозрачно.

Пример:

enter image description here


Подробнее см.popoverBackgroundViewClass свойство UIPopoverController:

popoverBackgroundViewClass

Класс, используемый для отображения фонового содержимого всплывающего окна.

@property (nonatomic, readwrite, retain) Class popoverBackgroundViewClass

Обсуждение

Значение этого свойства по умолчанию равно nil, что указывает на то, что контроллер поповера должен использовать внешний вид поповера по умолчанию.Установка этого свойства в значение, отличное от nil, заставляет контроллер поповера использовать указанный класс для рисования фонового содержимого поповера.Указанный вами класс должен быть подклассом UIPopoverBackgroundView.

Доступность Доступно в iOS 5.0 и более поздних версиях.Объявлено в UIPopoverController.h

4 голосов
/ 07 декабря 2011

В настоящее время нет свойства для установки альфа для UIPopoverController.

Если вы делаете: popoverController.contentViewController.view.alpha = 0.5;

Внутренний вид и содержимое будут прозрачными, а не UIPopoverController.

Смежный вопрос

4 голосов
/ 13 января 2011
popoverController.contentViewController.view.alpha = 0.5;

alpha является свойством UIView, поэтому вам нужно получить представление popOver, а затем установить альфа для этого представления.

1 голос
/ 04 февраля 2017

Теперь вы можете использовать свойство backgroundColour для popoverPresentationController, например,

            if let popoverPresentationController = myController.popoverPresentationController {
                popoverPresentationController.backgroundColor = UIColor(white: 1, alpha: 0.5)
            }

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

См. этот SO ответ для более подробной информации.

...