Как изменить цвет фона поповера - PullRequest
1 голос
/ 26 мая 2011

Моя проблема в том, что:

У меня есть всплывающее окно, и когда оно появляется, я хочу, чтобы цвет других видов стал серым.

После касания вне всплывающего окна всплывающее окно исчезнет, ​​а цвет остальных представлений вернется в нормальное состояние.

Кто-нибудь может мне помочь? Большое спасибо.

Ответы [ 3 ]

1 голос
/ 08 июня 2011

Хорошо, я нашел решение. Я использовал UIPopoverControllerDelegate

внутри есть метод с именем:

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController

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

каждый раз, когда всплывающее окно отклоняется пользователями, которые нажимают снаружи, будет вызываться упомянутый выше метод, и внутри этого метода просто удаляется UIImageView, который мы добавили только сейчас. И это сделано!

0 голосов
/ 26 мая 2011

В качестве предложения вы можете спросить себя, лучше ли для ваших нужд представить представление модально , а не всплывающее окно.Я говорю это потому, что поведение, которое вы описываете, является классикой модального представления.

0 голосов
/ 26 мая 2011

Вам нужно зациклить все подпредставления, распознать непрозрачный вид и сделать то, что вы хотите!

for (UIView *v in [self.view allSubViews])
{
    NSLog(@"%@", [v description] );

    // examples
    if (v.opacity <= 1) { }
    if([v isKindOfClass:[UIView class]]) { }
    // etc
}

надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...