Может кто-нибудь скажет мне, как я могу изменить тип и размер шрифта UISegmentedControl
?Изменить размер шрифта UISegmentedControl
ответ
Другой вариант - применить преобразование к элементу управления. Тем не менее, это уменьшит все, включая границы управления.
segmentedControl.transform = CGAffineTransformMakeScale(.6f, .6f);
Благодаря простому рабочему коду. Наилучший результат дает масштабирование до 0,75f в iOS6. Если используется в ячейке таблицы, добавьте 10 к высоте ячейки. – kjoelbro
Это не то, как вы меняете размер шрифта на любом элементе управления в iOS. Аффинное преобразование в основном предназначено для использования с анимацией. – vahotm
Пожалуйста, не масштабируйте стандартные элементы управления. –
Даниил указал мне на правильный путь. Я использовал его как this-
float scaleFactor = 0.8f;
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]
initWithFrame:CGRectMake(10, 70, 300/scaleFactor,35)];
[segmentedControl insertSegmentWithTitle:@"..." atIndex:0 animated:NO];
[segmentedControl insertSegmentWithTitle:@"..." atIndex:1 animated:NO];
[segmentedControl insertSegmentWithTitle:@"..." atIndex:2 animated:NO];
segmentedControl.transform = CGAffineTransformMakeScale(scaleFactor, 1);
CGPoint segmentedControlCenter = segmentedControl.center;
segmentedControlCenter.x = self.center.x;
segmentedControl.center = segmentedControlCenter;
Вы можете получить на фактический шрифт для UILabel рекурсивно изучения каждого из видов, начиная с UISegmentedControl. Я не знаю, это лучший способ сделать это, но он работает.
@interface tmpSegmentedControlTextViewController : UIViewController {
}
@property (nonatomic, assign) IBOutlet UISegmentedControl * theControl;
@end
@implementation tmpSegmentedControlTextViewController
@synthesize theControl; // UISegmentedControl
- (void)viewDidLoad {
[self printControl:[self theControl]];
[super viewDidLoad];
}
- (void) printControl:(UIView *) view {
NSArray * views = [view subviews];
NSInteger idx,idxMax;
for (idx = 0, idxMax = views.count; idx < idxMax; idx++) {
UIView * thisView = [views objectAtIndex:idx];
UILabel * tmpLabel = (UILabel *) thisView;
if ([tmpLabel respondsToSelector:@selector(text)]) {
NSLog(@"TEXT for view %d: %@",idx,tmpLabel.text);
[tmpLabel setTextColor:[UIColor blackColor]];
}
if (thisView.subviews.count) {
NSLog(@"View has subviews");
[self printControl:thisView];
}
}
}
@end
В коде выше я просто задающего цвет текста UILabel, но вы могли бы захватить или установить свойство шрифта, а я полагаю.
Я столкнулся с той же проблемой. Этот код устанавливает размер шрифта для всего сегментарного элемента управления. Что-то подобное может работать для установки типа шрифта. Обратите внимание, что эта функция доступна только для iOS5 +
Obj C:
UIFont *font = [UIFont boldSystemFontOfSize:12.0f];
NSDictionary *attributes = [NSDictionary dictionaryWithObject:font
forKey:NSFontAttributeName];
[segmentedControl setTitleTextAttributes:attributes
forState:UIControlStateNormal];
EDIT: UITextAttributeFont
устаревшим - используйте вместо NSFontAttributeName
.
EDIT # 2: для Swift 4 NSFontAttributeName
был изменен на NSAttributedStringKey.font
.
Свифта 4:
let font = UIFont.systemFont(ofSize: 16)
segmentedControl.setTitleTextAttributes([NSAttributedStringKey.font: font],
for: .normal)
Свифта 3:
let font = UIFont.systemFont(ofSize: 16)
segmentedControl.setTitleTextAttributes([NSFontAttributeName: font],
for: .normal)
Swift 2.2:
let font = UIFont.systemFontOfSize(16)
segmentedControl.setTitleTextAttributes([NSFontAttributeName: font],
forState: UIControlState.Normal)
Благодаря Swi фут реализация от @ Audrey-Гордеев
Это прекрасно работает, хотя если я уже сделал «[mySegmentedControl setTintColor: onColor forTag: kTagOnState];» и «[mySegmentedControl setTintColor: offColor forTag: kTagOffState];», то примените \t '[mySegmentedControl setTitleTextAttributes: attributes forState: UIControlStateNormal]; 'тогда Цвета, которые я только что установил, ушли. – scooter133
Вам нужно использовать dictionaryWithObjects: forKeys и создать два массива с вашими объектными и ключевыми атрибутами. – runmad
Код работал отлично для меня, как есть. – shkschneider
Используйте Appearance API в прошивке 5.0+:
[[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"STHeitiSC-Medium" size:13.0], UITextAttributeFont, nil] forState:UIControlStateNormal];
http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5
'UITextAttributeFont' был обесценен - вместо этого используйте' NSFontAttributeName'. –
Стоит отметить, что он изменит шрифт ALL 'UISegmentedControl's. – Vive
Swift Стиль:
UISegmentedControl.appearance().setTitleTextAttributes(NSDictionary(objects: [UIFont.systemFontOfSize(14.0)], forKeys: [NSFontAttributeName]), forState: UIControlState.Normal)
Вы должны использовать словарь быстрого стиля. '[NSFontAttributeName: font]' – osrl
Вот быстрая версия принятого ответ:
Свифта 3:
let font = UIFont.systemFont(ofSize: 16)
segmentedControl.setTitleTextAttributes([NSFontAttributeName: font],
for: .normal)
Swift 2.2:
let font = UIFont.systemFontOfSize(16)
segmentedControl.setTitleTextAttributes([NSFontAttributeName: font],
forState: UIControlState.Normal)
это для Objective C добавить сегментированный имя элемента управления вместо mysegmentedcontrol
UIFont * шрифт = [UIFont systemFontOfSize: 11.0f];
NSDictionary * attributes = [NSDictionary dictionaryWithObject: font forKey: UITextAttributeFont];
[mySegmentedcontrol setTitleTextAttributes: attributes forState: UIControlStateNormal];
надеюсь, что это помогает
Здесь я обновил для iOS8
[[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"STHeitiSC-Medium" size:13.0], NSFontAttributeName, nil] forState:UIControlStateNormal];
Его работа для меня. –
// Set font-size and font-femily the way you want
UIFont *objFont = [UIFont fontWithName:@"DroidSans" size:18.0f];
// Add font object to Dictionary
NSDictionary *dictAttributes = [NSDictionary dictionaryWithObject:objFont forKey:NSFontAttributeName];
// Set dictionary to the titleTextAttributes
[yourSegment setTitleTextAttributes:dictAttributes forState:UIControlStateNormal];
Если у вас есть запрос, свяжись со мной.
** objFont ** возвращает значение "nil'. –
Расширение для UISegmentedControl
для установки размера шрифта.
extension UISegmentedControl {
@available(iOS 8.2, *)
func setFontSize(fontSize: CGFloat) {
let normalTextAttributes: [NSObject : AnyObject]!
if #available(iOS 9.0, *) {
normalTextAttributes = [
NSFontAttributeName: UIFont.monospacedDigitSystemFontOfSize(fontSize, weight: UIFontWeightRegular)
]
} else {
normalTextAttributes = [
NSFontAttributeName: UIFont.systemFontOfSize(fontSize, weight: UIFontWeightRegular)
]
}
self.setTitleTextAttributes(normalTextAttributes, forState: .Normal)
}
}
XCode 8.1, Свифта 3
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UISegmentedControl.appearance().setTitleTextAttributes(NSDictionary(objects: [UIFont.systemFont(ofSize: 24.0)],
forKeys: [NSFontAttributeName as NSCopying]) as? [AnyHashable : Any],
for: UIControlState.normal)
}
}
просто изменить значение номера (ofSize: 24.0)
Прекрасно работает в Swift 3 и Xcode 8.2 – deijmaster
C#/Xamarin:
segment.SetTitleTextAttributes(new UITextAttributes {
Font = UIFont.SystemFontOfSize(font_size) }, UIControlState.Normal);
- 1. Как изменить размер шрифта для заголовка UISegmentedcontrol?
- 2. Как изменить размер шрифта текста в UISegmentedControl?
- 3. Как изменить размер шрифта одного индекса для UISegmentedControl?
- 4. Как изменить размер текста (шрифта) в соответствии с UISegment UISegmentedControl?
- 5. Изменить размер шрифта шрифта
- 6. LibGDX изменить размер шрифта шрифта
- 7. Как изменить цвет шрифта в UISegmentedControl
- 8. UISegmentedControl Изменение шрифта IOS7
- 9. Изменить размер шрифта Размер файла
- 10. Как изменить размер шрифта и имя шрифта uisegmentedcontrol программно на быстрый?
- 11. Изменить размер шрифта TextBox
- 12. изменить размер шрифта axisLabel
- 13. Изменить размер шрифта macvim?
- 14. JavaScript Изменить размер шрифта
- 15. Изменить размер шрифта System.out.println
- 16. ProgressDialog: изменить размер шрифта
- 17. css3: изменить размер шрифта
- 18. изменить размер шрифта относительно
- 19. Изменить размер шрифта UISearchBar
- 20. CFDocumentItem - изменить размер шрифта
- 21. Изменить размер шрифта динамически
- 22. javascript изменить размер шрифта
- 23. Изменить размер шрифта NSAttributedString
- 24. изменить размер шрифта переменной
- 25. Изменить размер шрифта
- 26. Изменить размер текста UISegmentedControl в iPhone
- 27. Как изменить шрифт UISegmentedControl в swift без изменения размера шрифта?
- 28. Изменить размер шрифта и размер шрифта в ActionScript 3
- 29. Как изменить размер шрифта и размер шрифта OHAttributedLabel в iOS?
- 30. Как изменить размер шрифта в приложении, изменив настройки. Размер шрифта
Любые решения в IB вместо код? – okysabeni