Я создаю UISegmentedControl в коде и инициализирую его именами, полученными из ответа JSON.BtnArray содержит имена для отображения в segmentedItems.Первый элемент - это фиксированная кнопка «Все».
Моя проблема заключается в том, что исходный массив содержит от 4 до 8, поэтому возникает проблема с отображением текста в сегменте за пределами segementItem.
Можно ли каким-либо образом разрешить сегменту иметь переменный размер в зависимости от того, сколько сегментов элемента, чтобы он все еще помещался на панели инструментов?
Кроме того, как я могу контролировать длину отображаемого текстато есть обрезать текст, если он не помещается внутри, аналогично тому же поведению для кнопки UIB.
Или у кого-нибудь есть какие-либо советы по использованию навигационного решения со словами «следующий» и «предыдущий», где можно переключать новые сегменты?Таким образом, я мог бы иметь фиксированный номер, чтобы всегда отображать первые 4, и иметь возможность скользить в новых сегментах на элементе управления, а также вернуться к предыдущему 4.
Вот мой код:
segmentedControl = [[UISegmentedControl alloc] initWithItems:btnArray];
segmentedControl.tintColor = [UIColor grayColor];
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.frame = CGRectMake(0, 0, 300, 30);
// Setup the target and actions for the segmentedControl
[segmentedControl addTarget:self
action:@selector(selectGroup:)
forControlEvents:UIControlEventValueChanged];
// Add the UISegmentedControl as a UIBarButtonItem subview to the UIToolbar
UIBarButtonItem *segmentedItem = [[[UIBarButtonItem alloc] initWithCustomView:segmentedControl] autorelease];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
NSArray *groupsButtons = [NSArray arrayWithObjects:flexSpace, segmentedItem, flexSpace, nil];
[groupsToolbar setItems:groupsButtons];