2012-05-02 2 views
6

У меня есть сегментированный контроль. Всякий раз, когда представление завершается, я создаю элемент кнопки панели, чтобы удерживать его, и установите его как элемент панели инструментов. Проблема, с которой я столкнулась, заключается в том, что сегментированный элемент управления не заполняет пространство на панели инструментов, даже если оно настроено на поведение заполнения пробела.Как я могу использовать сегментированный элемент для заполнения пространства на панели инструментов приложения iOS?

Как я могу получить сегментированный пробел в панели инструментов приложения iOS?

ответ

1

Похоже, вы пытаетесь получить нестандартное поведение панели инструментов из UIToolbar. Почему бы просто не оставить там UIView и обычным образом заполнить его UISegmentedControl? Существуют ли определенные функции UIToolbar, которые вам нужны?

0

Для UIView вообще нет «поведения заполнения пространства». Они получают размер, который они назначены. Все, что вы можете сделать, это:

  1. установить их автоматического изменения маски для управления, как они изменяют свои размеры, если их родительский вид меняет свой размер
  2. установить их UIViewContentMode контролировать, как они изменить размер их содержание (важно для UIImageViews, для пример)

в вашем случае, вы можете сделать следующее, чтобы получить UIToolbar содержащий UISegmentedControl, который так широко, как на панели инструментов:

(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Create the toolbar; place it at the bottom of the view. 
    UIToolbar *myToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height-44, self.view.bounds.size.width, 44)]; 
    myToolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; 
    [self.view addSubview:myToolbar]; 

    // Create the UISegmentedControl with two segments and "Bar" style. Set frame size to that of the toolbar minus 6pt margin on both sides, since 6pt is the padding that is enforced anyway by the UIToolbar. 
    UISegmentedControl *mySegmentedControl = [[UISegmentedControl alloc] initWithFrame:CGRectInset(myToolbar.frame, 6, 6)]; 
    // Set autoresizing of the UISegmentedControl to stretch horizontally. 
    mySegmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; 
    [mySegmentedControl insertSegmentWithTitle:@"First" atIndex:0 animated:NO]; 
    [mySegmentedControl insertSegmentWithTitle:@"Second" atIndex:1 animated:NO]; 
    mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 

    // Create UIBarButtonItem with the UISegmentedControl as custom view, and add it to the toolbar's items 
    UIBarButtonItem *myBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:mySegmentedControl]; 
    myToolbar.items = [NSArray arrayWithObject:myBarButtonItem]; 
} 
Смежные вопросы