【发布时间】:2013-01-05 20:29:22
【问题描述】:
我有一个 iPhone 应用程序,它的屏幕上有很多 UILabel。我正在使用故事板。我的问题是这个。如何使用设置屏幕中的按钮或滑块更改应用程序中所有标签的字体大小?我还希望有一个最大尺寸,否则文本会变得太大而无法显示在屏幕上。
谢谢!
【问题讨论】:
标签: iphone ios xcode storyboard
我有一个 iPhone 应用程序,它的屏幕上有很多 UILabel。我正在使用故事板。我的问题是这个。如何使用设置屏幕中的按钮或滑块更改应用程序中所有标签的字体大小?我还希望有一个最大尺寸,否则文本会变得太大而无法显示在屏幕上。
谢谢!
【问题讨论】:
标签: iphone ios xcode storyboard
试试这个:
-(IBAction)sliderValueChanged:(UISlider *)sender
{
CGFloat maxFontSize = 24.0;
CGFloat minFontSize = 8.0;
CGFloat sliderValue = sender.value;
if ((sliderValue < maxFontSize) && (sliderValue > minFontSize)) {
label1.font = [UIFont boldSystemFontOfSize:sliderValue];
label2.font = [UIFont boldSystemFontOfSize:sliderValue];
label3.font = [UIFont boldSystemFontOfSize:sliderValue];
}
}
我没有测试过这段代码,但我认为它应该可以工作.. 希望对您有所帮助。
【讨论】:
嗯。没有一种绝妙的方法可以做到这一点。如果你正在寻找一个快速的捷径,那你就不走运了。您需要创建一个可以在每个 viewControllers viewDidLoad: 方法中运行的方法,但首先要这样做:
首先,在您的应用中某处有一个滑块。假设滑块范围为 1-5。对于 1 之后的每个值,保存一个 int 以供以后参考。在任何文件中都可以。请参阅 NSCoding。本质上,您取数字,在本例中为 5,然后减去 1 并保存。因此,如果用户选择 5,您将节省 4。
好的,现在在每个控制器的 viewDidLoad 中,都有一个类似的方法来执行以下操作:
获取您保存的 int 值。现在获取您的基本文本大小并添加您保存的数字。稍后您将需要它作为 CGFloat。我不肯定如何使用它,但你可以找出来。
然后使用:
[label1 setFont:[UIFont fontWithName:@"Name Of font" size:<#(CGFloat)#>]]
您必须在所有 UILabel 上使用它。
如果你还需要什么,请告诉我。
【讨论】: