如何在不更改字体大小的情况下快速更改 UISegmentedControl 的字体?

Posted

技术标签:

【中文标题】如何在不更改字体大小的情况下快速更改 UISegmentedControl 的字体?【英文标题】:How do I change the font of a UISegmentedControl in swift without changing the font size? 【发布时间】:2016-11-22 08:57:33 【问题描述】:

我想改变UISegmentedControl的字体而不改变字体大小。

这是我的代码,但显然,在这种情况下,我也更改了字体大小:

let attr = NSDictionary(object: UIFont(name: "Avenir", size: 12.0)!, forKey: NSFontAttributeName)
segmentedControl.setTitleTextAttributes(attr as [NSObject : AnyObject] , forState: .Normal)

我该如何解决这个问题?

【问题讨论】:

***.com/questions/2280391/… 先获取字体大小,然后更改字体并将字体大小设置为之前得到的大小。 @ayteq 如何获取 UISegmentedControl 的字体大小? 【参考方案1】:

试试下面的代码,这不是正确的方法,但我们没有其他选择,那么我们应该通过这个 wat

int fontSize;
for (id segment in [segmentedControl subviews]) 

    for (id label in [segment subviews]) 
    
        if ([label isKindOfClass:[UILabel class]])
        
          fontSize = label.font.pointSize;
          // Here you got the label, now use the font size from here
          break;
        
       

现在你得到了fontSize,现在你可以用它来改变字体了

【讨论】:

以上是关于如何在不更改字体大小的情况下快速更改 UISegmentedControl 的字体?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不知道小部件的字体系列/大小的情况下更改小部件的字体样式?

PyCharm:如何在不使用鼠标滚动缩放的情况下更改字体大小?

如何在不使用自动收缩的情况下使用不同 iPhone 尺寸的自动布局更改字体大小 [重复]

具有自动布局的多行UILabel,如何在不更改标签框架的情况下根据内容调整字体大小?

在不丢失 Html 样式的情况下更改 NSAttributedString 中的字体大小 - Swift

WPF:在不知道项目的情况下更改组合框的字体大小