如何在更改首选字体大小时自动呈现具有新字体大小的文本

时间:2014-08-25 13:59:11

标签: ios objective-c

我希望当用户在其设备上更改其首选字体大小时,textview的字体大小会自动更改。

我设置了观察者,但我需要重新加载页面以查看字体大小的变化。

- (void)viewDidLoad {
 [super viewDidLoad];
 [[NSNotificationCenter defaultCenter] addObserver:self
                                          selector:@selector(preferredFontChanged:)
                                              name:UIContentSizeCategoryDidChangeNotification
                                            object:nil];


- (void)preferredFontChanged:(NSNotification *)notification
{
 [self setupCustomUIView];
}

- (void)setupCustomUIView
{
 [self.bodyTextView setLineHeightScale:0.5f];
 [self.view setNeedsDisplay];
}

1 个答案:

答案 0 :(得分:0)

检查并确保在UIContentSizeCategoryDidChangeNotification通知后执行设置字体的行。

例如,您可以在下面尝试..(请参阅本教程here

- (void)setupCustomUIView
{
    // Assuming that bodyTextView is actually your dynamic text sized view.
    self.bodyTextView.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline1];
}