2012-06-17 2 views
3
  1. Я пытаюсь добавить Segmented Control в свой UIToolbar ниже, но когда я пытаюсь перетащить его в Storyboard, он заменяет мой Table View.
  2. Кроме того, когда я пытаюсь добавить UIBarButton на мою панель инструментов, он толкает мои прототипные ячейки вниз ... у меня неправильная иерархия представлений?
  3. Когда я добавляю элемент UIBarButton в любом случае, в симуляторе панель инструментов не является черным прозрачным, как я установил в своем контролере управления навигацией. Что с этим?

спасибо!Как добавить UISegmentedControl в мой UIToolbar с помощью раскадровки?

enter image description here enter image description here

+0

Не прочитал вопрос правильно , Прости. – brindy

+0

Обновлен мой ответ, надеюсь, что это поможет. – brindy

ответ

3

1 - Сделайте это программно. Сначала вам нужно назначить фрейм на свой UIToolbar, затем вы можете добавить в него элементы (segmentedControl). Я предлагаю хотя бы использовать UIBarButtonItems, которые в основном такие же.

Чтобы вставить его на дно, попробуйте сделать так:

#define SCREEN_FRAME [[UIScreen mainScreen] applicationFrame] 

CGRect frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 44, [[UIScreen mainScreen] bounds].size.width, 44); 
UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:frame]; 
toolBar.frame = CGRectMake(0,self.view.frame.size.height-toolBar.frame.size.height,SCREEN_FRAME.size.width,toolBar.frame.size.height); 

//Setting up the items 

UIBarButtonItem *first = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image.png"] style:UIBarButtonItemStylePlain target:self action:@selector(yourAction:)] autorelease]; 
UIBarButtonItem *second = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image.png"] style:UIBarButtonItemStylePlain target:self action:@selector(yourAction:)] autorelease]; 

//Creating an array with the items 
NSArray *items = [NSArray arrayWithObjects:first,second, nil]; 

//Assigning the array to the toolBar 
[toolBar setItems: items]; 

Затем вы можете установить свой стиль с

mytoolbar.barStyle = UIBarStyleBlack; 

2 - То же, что и выше, кадрирования.

3 - Вам необходимо настроить стиль navigationController на черный.
self.navigationController.navigationBar.style = UIBarStyleBlack; , или в IB выберите кнопки и из Инспектор установите Tint или Style на все, что вы хотите.

Проверьте также this вопрос

+0

как я могу заставить его всегда придерживаться нижней части экрана? прямо сейчас он прокручивается, как прокрутки таблицы – user1337645

+0

Ответ отредактирован. Проверить сейчас – Phillip

+0

Хм, его все еще не прилипает к дну? Я добавляю панель инструментов к виду следующим образом: [self.view addSubview: панель инструментов]; – user1337645

1

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

Чтобы сделать это с помощью раскадровки, не добавляйте сегментированный элемент управления к моделируемой панели инструментов, создайте новую панель инструментов и добавьте ее в дерево представлений, доступное в вашем контроллере (как родственный к вашему представлению таблицы) и создайте IBOutlet для ссылки на него. Затем в вашем методе viewDidLoad назначьте элементы на панели инструментов панели инструментов, уже созданной контроллером представления.

В этом примере я создал свойство на мой взгляд, контроллер с именем (хитро) Панель инструментов:

@property (nonatomic, retain) IBOutlet UIToolbar toolbar; 

В реализации с моей точки зрения контроллера Поручаю элементов панели вручную:

-(void)viewDidAppear:(BOOL)animated 
{ 
    [self setToolbarItems:self.toolbar.items animated:NO]; 
    [self.navigationController setToolbarHidden:NO animated:YES]; 
} 

You необходимо будет скрыть панель инструментов при вызове контроллера вида, например, в контроллере вызова:

-(void)viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setToolbarHidden:YES animated:YES]; 
} 

Предполагая, что вы хотите скрыть это, конечно.

+0

Undeleted и отредактировал этот ответ, поскольку я думаю, что это все еще актуально. – brindy

+0

Когда я добавляю его как родного брата, он фактически не отображается ни в раскадровке, ни в симуляторе. Не скрывается ли это табличное представление? – user1337645

+0

Да, это нигде не отображается. Но вы все равно можете ссылаться на IBOutlet - это просто удобство, поэтому вам не нужно создавать элементы и массив в коде. Затем, если вы используете код, который я дал, элементы появятся на панели инструментов контроллера по умолчанию. – brindy

6

Для создания сегментированных управления элемента в панели инструментов с строителем интерфейса можно использовать следующую подсказку

1) Создание сегментированных Control Bar Кнопки Пункта в Навигационный контроллер:

Create Segmented Control Bar Button Item in Navigation Controller

2) Drag Bar Кнопка Пункт до пункта навигации

Drag Bar Button Item up to Navigation Item

3) Затем вы должны получить следующую структуру

The resulting structure

4) Теперь вы можете выбрать Сегментированный Control, чтобы установить его свойства

Select Segmented Control to set its properties

0

Я сделал это, поместив UISegmentedController в элемент бара.

Добавить панель инструментов в окно UINavigationController, затем включить отображение этой панели инструментов на экране ViewController.

Перетащите панель кнопок на панели инструментов на экране ViewController и перетащить UISegmentedController в том, что (изменение размера кнопки на всю ширину экрана)

Для проволочных все это, Ctrl-перетащить из UISegmentedController к соответствующему файлу .h, перетащите его из «ссылки на выход» на желтый значок контроллера управления (используя одно и то же имя переменной), затем перетяните с «ValueChanged» на желтый значок (выберите метод на контроллере, который вы хотите вызвать новый выбор).

Это похоже на работу, как ожидалось. (Если вы не можете выбрать сегмент на контроллере, чтобы установить начальное значение, вы не подключили референсную розетку, как описано выше. Это немного задержало меня.)

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