Как поместить индикатор выполнения в панель инструментов UINavigationController, например, в приложение «Почта»? - PullRequest
5 голосов
/ 18 ноября 2009

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

То, что я на самом деле хочу, очень похоже на почтовое приложение:

Screenshot of Mail application showing an example toolbar layout

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

Я возился с кодом, пытаясь это сделать, но я никогда раньше не работал с панелью инструментов контроллера Nav, поэтому я не уверен, с чего начать.

Кто-нибудь знает, что я мог бы пойти на это, или где я мог бы найти ресурсы, объясняющие, как это сделать?

Я прочитал руководство по Human Interface Guide , справку по классу UINavigationController и руководство по программированию View Controller , но они показывают только то, как очень простые макеты панели инструментов с простыми кнопками и сегментированными элементами управления.

Ответы [ 2 ]

8 голосов
/ 18 ноября 2009

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

UIBarButtonItem* progressItem = [[UIBarButtonItem alloc] initWithCustomView:progressItemView];
toolbar.items = [NSArray arrayWithObject:progressItem];

Вы можете сделать это программно или в Интерфейсном Разработчике.

2 голосов
/ 18 ноября 2009

Это довольно легко, используя IB. Просто перетащите панель инструментов на свое представление, затем перетащите NSProgressIndicator. Наконец, перетащите NSF FlexibleSpacer слева от индикатора выполнения и кнопку отмены вправо. Возможно, вам придется добавить несколько NSSpaceers слева и справа, чтобы все выстроилось правильно.

...