【问题标题】:Is it possible to use size classes to adjust the text size for UISegmentedControl objects?是否可以使用大小类来调整 UISegmentedControl 对象的文本大小?
【发布时间】:2015-06-01 21:32:23
【问题描述】:

我的应用在大屏幕上看起来不太好。在我的主屏幕上,我使用分段控件,在 iPad (Mini) 上,它看起来不专业,因为这些分段控件中的文本大小没有按比例放大。分段控件本身很容易通过设置约束将其与超级视图绑定在左侧和右侧来放大。

当我尝试使用大小类时,我找不到增加分段控件中的字体大小以适应更大(常规宽度、任何高度)屏幕的方法。出于学习目的,我已经在一个单屏一次性应用程序中尝试了这一点。我是大小班的新手,所以也许我遗漏了一些明显的东西。

有没有办法使用大小类来放大分段控件的字体大小?如果没有,是否有另一种以编程方式执行此操作的方法?我正在使用 Swift 并且不熟悉 Objective-C。如果您能详细说明任何解决方案,那将有所帮助,因为我对 iOS 编程还比较陌生。

【问题讨论】:

  • 欢迎您!你能把你的代码发一个mvce吗?
  • 我认为没有任何方法可以使用大小类来做到这一点,因为您无法在 IB 中设置文本大小。您可以使用setTitleTextAttributes(_ attributes: , forState state:) 修改代码中的标题
  • @Captain 感谢您的欢迎!由于这只是一个关于大小类和分段控件的问题,所以在提出问题时根本没有代码。我最终在我的最终解决方案中使用了 setTitleTextAttributes。请参阅下面的 cmets。

标签: ios uisegmentedcontrol size-classes


【解决方案1】:

当您在 iPad 上而不是 iPhone 上运行时,您可以使用 Interface Builder 中的大小类来替换具有更大字体大小的不同分段控件。但是你不能在 Interface Builder 中使用 size 类来为 same 分段控件设置不同的字体大小。

【讨论】:

  • 谢谢马特!我能够使用它(以及 StackOverflow 周围的一些其他花絮)来找到解决方案。使用的最终代码: import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() var bigFontSize : CGFloat = 20.0 var attr = NSDictionary(object: UIFont.systemFontOfSize(bigFontSize), forKey: NSFontAttributeName) iPadSegControl.setTitleTextAttributes( attr as [NSObject : AnyObject], forState: .Normal) } @IBOutlet weak var iPadSegControl: UISegmentedControl!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
相关资源
最近更新 更多