【问题标题】:how to allow the user to change font Swift如何允许用户更改字体 Swift
【发布时间】:2015-08-18 17:28:06
【问题描述】:

我正在构建一个显示详细信息的应用程序,我希望允许用户更改这些详细信息的字体 我已经做了一些研究,但所有这些都是去设备的设置并从那里更改字体 那么,有什么方法可以在我的应用程序中进行类似的设置

提前谢谢你

更新

我使用了以下滑块,但它不起作用

@IBAction func FontSlider(sender: AnyObject) {
    var currentValue  = Int(Slider.value) as Int
    println(currentValue)
    ingredients.font = UIFont(name: ingredients.font.fontName, size: currentValue)

      }

【问题讨论】:

  • 如何向用户显示这些详细信息? UILabel?
  • 有些是标签,有些是文本视图

标签: swift font-size


【解决方案1】:

UILabel 和 UITextView 可以使用appearance proxies,并将字体保存在NSUserDefaults

当用户选择一种字体时(你必须创建一个界面,Rizwan 关于使用 UIPickerView 的回答是个好主意),你可以保存字体并为所有标签和 textViews 设置它。

func setDefaultFont (font: UIFont)
{
    NSUserDefaults.standardUserDefaults().setObject(font, forKey: "defaultFont")

    UILabel.appearance().font = font;

    UITextView.appearance().font = font;
}

您可能想要检查保存的字体并进行设置。这可以在根 viewController 的 -viewDidLoad 方法中调用,甚至可以在应用委托中调用。

func checkAndSetDefaultFont ()
{
    let font: UIFont = (NSUserDefaults.standardUserDefaults().objectForKey("defaultFont") as? UIFont)!

    UILabel.appearance().font = font;

    UILabel.appearance().font = font;
}

【讨论】:

  • 谢谢你,但实际上我使用的是 Swift 而不是 Objective-C
  • 是的...我正在将其转换为swift...之前没有注意到标签。
  • @user3599431 代码示例已转换为 Swift。
【解决方案2】:

使用了更好的方法UIPickerView,您可以在其中为用户提供不同的UIfont 选项。

一旦用户选择任何选项,使用didSelectRow 函数并根据用户选择的字体更改字体。

编辑:因为你使用滑块而不是使用

@IBAction func FontSlider(sender: UISlider) {
var currentValue  = Int(Slider.value) as Int
println(currentValue)
ingredients.font = UIFont(name: ingredients.font.fontName, size: currentValue)

  } 

【讨论】:

  • 我使用了滑块,但它不起作用,它在 UIfont @IBAction func FontSlider(sender: AnyObject) { var currentValue = Int(Slider.value) as Int println(currentValue) 成分中给了我错误.font = UIFont(名称:成分.font.fontName,大小:currentValue)}
猜你喜欢
  • 2016-12-10
  • 2023-03-09
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 2012-04-26
  • 2019-01-18
  • 2013-11-30
相关资源
最近更新 更多