Popover и табличный вид прозрачны - PullRequest
2 голосов
/ 31 марта 2011

В моем приложении для Ipad я использую поповер, но не могу сделать его прозрачным.Поповер имеет вид изнутри;мой код:

UIViewController* popoverContent = [[UIViewController alloc] init];
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(600, 800, 100, 100)];   
popoverView.backgroundColor = [UIColor greenColor];
popoverContent.view = zoneViewController.view;
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
[self.popoverController presentPopoverFromRect:CGRectMake(1200, -200, 50, 375) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:TRUE];
[[[popoverController contentViewController] view] setAlpha:0.25f];

Я могу сделать прозрачным только просмотр таблицы, но popover остается черным ... почему ??

Ответы [ 4 ]

3 голосов
/ 12 августа 2012

Я часами пробовал каждое решение, перечисленное на этом сайте, чтобы добиться прозрачности для работы на UIPopoverController, содержащем GROUPED UITableView - ни один из которых не работал для меня:

  1. Поместите всплывающее окно в родительское представление и измените альфа в этом представлении. (FAILED)
  2. Изменение альфа для различных комбинаций подпредставлений (фон табличного представления, ячейки табличного представления, фон всплывающего окна и т. Д.)
  3. Добавить фоновые изображения в ячейки и изменить альфа на них. (FAILED)
  4. Наконец: измените альфа на КАЖДОМ представлении в иерархии, начиная с представления всплывающего контента (СБОЙ)

В поповере есть представление черного корня с альфа-значением 1,0, и не имеет значения, что вы делаете с подпредставлениями (или если вы добавляете его в суперпредставление), прозрачность не работает. Итак, я сканировал иерархию представлений (методом проб и ошибок), пока не добрался до этого проклятого черного представления и явно установил ITS альфа. Успех! Все, что мне нужно было добавить, это одна строка кода ПОСЛЕ того, как всплывающее окно было видно:

self.popoverController.contentViewController.view.superview.superview.superview.alpha = 0.5;

N.B. Это решение, скорее всего, перестанет работать, когда Apple сделает обновления до UIPopoverController, поэтому используйте на свой страх и риск!

0 голосов
/ 09 апреля 2018

Поповер по умолчанию прозрачен.Если вы помещаете подпредставления в представление Popover, то вы должны сделать подпредставления прозрачными backgroundColor.

Итак, в вашем случае вам нужно будет установить свойство backgroundColor tableView на [UIColor clearColor]также необходимо сделать ваши ячейки tableView прозрачными.

Не забудьте сделать ваши клетки прозрачными!

0 голосов
/ 07 октября 2014

Начиная с iOS 5 вы можете установить пользовательский UIPopoverBackgroundView.Проверьте обсуждение в Настройка UIPopoverController для фона и цвета рамки

0 голосов
/ 01 апреля 2011
[[[popoverController contentViewController] view] setAlpha:0.25f];

Это изменяет прозрачность представления zoneViewController, которое будет вложено в Popover. Тем не менее, в настоящее время у вас нет возможности настроить внешний вид самого Popover. Вы можете контролировать размер и направление стрелки, но не цвет границы или прозрачность границ Popover.

Если вы действительно хотите прозрачную рамку Popover, вам придется написать свою собственную.

Связанный: Как настроить / оформить UIPopoverController

...