iOS7应用程序以及如何在应用程序内进行应用程序范围的字体调整(不在“设置”中)

时间:2014-03-12 08:19:50

标签: ios ios7 uifont

我有一个相对较小的本机应用程序,并希望有一个3按钮控件,可以设置应用程序的字体大小。我希望它能够支持单击不同的未填充大小并让它自动使用新的字体大小和所有后续视图重新呈现当前视图。类似于控件的填充大小是当前大小,清晰版本是可以选择的按钮:

enter image description here

似乎我想要编程动态类型,但我不确定是否有更简单的方法。阅读不同的Text技术确实没有提供太多帮助。

我的观点使用UILabel和UITextViews与NSAttributedString和NSString的组合。以编程方式管理字体大小的最佳选择是什么?

thx任何帮助

编辑1

这是我要添加的标签;我可以只更新子视图中使用的_mainFont变量并告诉这些子视图更新其渲染吗?

   UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, 10.0f, 100.0f, 20.0f)];
    myLabel.backgroundColor = [UIColor blueColor];
    [myLabel setUserInteractionEnabled:YES];

    UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction)];
    [recognizer setNumberOfTapsRequired:1];
    //lblName.userInteractionEnabled = true;  (setting this in Interface Builder)
    [myLabel addGestureRecognizer:recognizer];

    [tempScrollView addSubview:myLabel];

}

- (void)tapAction {
    NSLog(@"Tap action");
    _mainFont = MYLargerMainFont();
    [self.view setNeedsDisplay];
    //[self.view.subviews setNeedsDisplay];

}

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

就像动态类型一样,最好的方法是在发生更改时触发通知,并让视图控制器监听此更改并设置字体。如果你想要更强大的东西,你可以创建你拥有的UI元素的子类,让他们听取字体大小更改通知,并相应地更新自己。我喜欢前一种方法,因为视图控制器应该最终控制视图。