【问题标题】:Adjust font size in UisegmentControl在 UisegmentControl 中调整字体大小
【发布时间】:2017-04-12 07:32:50
【问题描述】:

如何在段控件中调整字体大小,就像一个标签一样,它有一个名为 adjustsFontSizeToFitWidth 的属性,所以如果文本大于标签宽度,字体大小会变小以适应宽度我怎么能对 uisegmetncontrol 做同样的事情?

【问题讨论】:

    标签: swift fonts uilabel uisegmentedcontrol


    【解决方案1】:

    使用 setTitleTextAttrribute 为段控制设置字体

      SegmentControl.setTitleTextAttributes([NSFontAttributeName: UIFont(name: REGULAR_FONT, size: 13.0)],
                                                               for: UIControlState())
       SegmentControl.setTitleTextAttributes([NSFontAttributeName: UIFont(name: BOLD_FONT, size: 13.0)], for:.selected)
    

    添加了评论中提到的答案的快速版本:-

     func setWidthTosegmetControl(view :UIView)  {
            let subviews = view.subviews
            for subview in subviews {
                if subview is UILabel {
                    let label: UILabel? = (subview as? UILabel)
                    print("label found: \(label?.text)")
                    label?.adjustsFontSizeToFitWidth = true
                    label?.minimumScaleFactor = 0.1
                }else {
                    setWidthTosegmetControl(view: subview)
                }
            }
        }
    

    【讨论】:

    • 正在寻找 swift 版本
    【解决方案2】:

    我必须在视图控制器中执行此操作并在 viewDidAppear 中调用该函数。

    func autoshrinkSegmentFontSize() {
        for subview in segments.subviews {
            for label in subview.subviews {
                if let myLabel = subview as? UILabel {
                    myLabel.adjustsFontSizeToFitWidth = true
                    myLabel.minimumScaleFactor = 0.5
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 2012-08-18
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      相关资源
      最近更新 更多