Как создать слой, который плавает над tabbarcontroller на iphone - PullRequest
1 голос
/ 17 февраля 2010

вот и все.

Я нахожусь в последней части моего приложения для iPhone и обнаружил, что нахожусь в разделе приложения, в котором я хочу дать отзыв о состоянии некоторого фонового процесса, запущенного (точность диспетчера местоположения), и хочу разместить его в левом нижнем углу экрана. Это может сказать пользователю, насколько «мы уверены» в данных результатах поиска, которые они получают из моего приложения.

Несколько вопросов. Это приложение на основе навигации (просто, чтобы вы знали). Я хочу, чтобы плавающее поле (например) высотой 40 пикселей, шириной 80 (или около того) полупрозрачного черного цвета (возможно, альфа. 6) со скругленными углами в левом нижнем углу экрана над панелью вкладок. Я хочу, чтобы он появлялся по требованию (когда вызывается диспетчер местоположений) и исчезал, когда я останавливал диспетчер местоположений - НО плавают над приложением во ВСЕХ ПРОСМОТРАХ приложения и НЕ блокируют касания, когда пользователь перемещается по приложению. Это все возможно? И если да, то как? Код был бы лучшим, но я не прошу о начале и окончании решения.

Я просто не "получаю" следующее:

  • Я не понимаю, смогу ли я поставить флажок над всеми представлениями приложения в любое время.
  • С чего начать ... какой "объект" я использую для его создания? CALayer? CGRect? Я хочу быть в состоянии сказать (например) «Точность: 10» (и у номера есть изменение цвета ... не знаю, ограничивает ли это меня объектом, на который я могу его надеть.
  • НЕ МОЖЕТ касаться блока. и хотел бы, чтобы он оставался над приложением, когда пользователь касается экрана и меняет представление.

Возможно ли все это, и если да, может ли кто-нибудь дать мне хорошую отправную точку? У меня есть все программирование, необходимое для получения значений менеджера местоположения ... но я не знаю, как поместить вид поверх других видов, не отталкивая другие от экрана ... ИЛИ что-то вроде этого ... который блокирует и является AlertView .. не тот предмет, который мне нужен:

// this is not the answer for what I need
baseAlert = [[[UIAlertView alloc] initWithTitle:@"One Moment" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles: nil] autorelease];
[baseAlert show];
// Create and add the activity indicator
UIActivityIndicatorView *aiv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
aiv.center = CGPointMake(baseAlert.bounds.size.width / 2.0f, baseAlert.bounds.size.height - 40.0f);
[aiv startAnimating];
[baseAlert addSubview:aiv];
[aiv release];

Идеальной вещью для меня была бы (и я не знаю, можно ли это сделать) строка состояния «Возврат к звонку», зеленая, которую Apple выдает, когда вы разговариваете под строкой состояния iPhone. I знать, что не доступно программистам.

В любом случае, любая помощь приветствуется. Спасибо заранее.

1 Ответ

1 голос
/ 17 февраля 2010

Вы сможете создать UIView и добавить его в главное окно в качестве подпредставления.

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

...