Я хотел бы знать, есть ли способ изменить высоту сегмента управления или, возможно, изменить размер шрифта элемента управления?Регулировка высоты сегмента управления в iPhone
Спасибо.
Я хотел бы знать, есть ли способ изменить высоту сегмента управления или, возможно, изменить размер шрифта элемента управления?Регулировка высоты сегмента управления в iPhone
Спасибо.
Вы можете сделать это только с помощью кода, а не интерфейса InterfaceBuilder. IB пытается остаться в пределах Apple's HIG, поэтому он не позволяет изменять высоту.
Если вы изменяете высоту (фрейм) программно, вам также нужно изменить изображение, используя setImage: forSegmentAtIndex: поскольку изображение по умолчанию выглядит ужасным при растяжении.
Я знаю, что это старый и уже ответил, но для других поисков;
Я обнаружил, что изменение стиля в BAR в атрибутах в IB - очень быстрое и приемлемое обходное решение, которое использует гораздо более короткую графику.
Действительно хороший, я не видел этот вариант :) – darksider
Когда я пробовал, я не мог назначить высоту напрямую. Я должен был это сделать:
- (void)adjustSegControlHeight:(UISegmentedControl*)segControl :(NSInteger)newHeight {
CGRect segControlFrame = segControl.frame;
segControlFrame.size.height = newHeight;
segControl.frame = segControlFrame;
}
Но я все же решил использовать метод BAR.
КСТАТИ: [segControl кадр] .size.height = newHeight не будет работать потому что [segControl frame] .size.height - свойство readonly. – jianpx
Я знаю, что это более старое сообщение, но если кто-то там все еще пытается понять это, я так и делал это. Надеюсь, что это будет полезно для нуждающегося.
UISegmentedControl *customeSegment = [[UISegmentedControl alloc] initWithFrame:CGRectMake(206.0f, 7.0f , 110.0f, 30.0f)];
Существует способ сделать это в интерфейсе строителя в эти дни в случае, если кто натыкается на этот вопрос.
1: щелкните сегментированный элемент управления в IB 2: на экране сетки найдите «контактный» элемент управления в правом нижнем углу. 3: нажмите «штырьковую высоту» 4: открыть инспектор размера в области коммунального хозяйства (теперь вы будете иметь ограничение высоты) 5: нажмите на шестеренку и выберите «Выбор и редактирование»
Довольно взломать-й но если вы не сможете это обновить по коду, это сработает.
К счастью, вы также можете изменить высоту от xib.
Вы можете сделать это через xib
. Просто добавьте управление сегментом в xib
. Затем откройте xib
в TextEdit. Там вы найдете код
<segmentedControl opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="B99-Tt-vJG">
<rect key="frame" x="222" y="82" width="123" height="44"/>
Здесь вы меняете высоту от 44 до любой требуемой высоты. Вы можете изменить высоту любого UIConponent
следующим образом. Даже для UIPickerView
.
Способ сделать это в iOS 7+, используя AutoLayout, просто добавляет ограничение высоты к сегментированному элементу управления, а затем обновляет фреймы для решения проблем автоматического макета. Затем IB отобразит макет на требуемой высоте. Затем можно отредактировать ограничение высоты, чтобы изменить высоту в любое время от IB.
Это работало идеально для меня. И он обновляется для новых версий iOS и Xcode.
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:yoursegmentedControl
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1
constant:THE NEW HEIGHT];
[yoursegmentedControl addConstraint:constraint];
хорошо .. Кажется, я должен сделать это в трудный путь =) – Zteeth