自动更改字体大小以适应swift中的按钮
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动更改字体大小以适应swift中的按钮相关的知识,希望对你有一定的参考价值。
我试过这个,但它不起作用,文本超出按钮边界。
button.titleLabel!.adjustsFontSizeToFitWidth = true
button.titleLabel!.numberOfLines = 0
button.titleLabel!.minimumScaleFactor = 0.1
当我尝试以下操作时,所有文本都适合,但文本仍然是小字体:
button.titleLabel!.font = UIFont(name: "Heiti TC", size: 9)
如何让字体自动适合按钮的大小?
func nextQuestion() {
let currentQuestion = mcArray![questionIdx]
answers = currentQuestion["Answers"] as! [String]
correctAnswer = currentQuestion["CorrectAnswer"] as? String
question = currentQuestion["Question"] as? String
titlesForButtons()
}
func titlesForButtons() {
for (idx,button) in answerButtons.enumerate() {
button.titleLabel!.lineBreakMode = .ByWordWrapping
button.titleLabel!.font = UIFont(name: "Heiti TC", size: 5)
button.titleLabel!.numberOfLines = 0
button.titleLabel!.minimumScaleFactor = 0.1
button.titleLabel!.baselineAdjustment = .AlignCenters
button.titleLabel!.textAlignment = NSTextAlignment.Center
button.setTitle(answers[idx], forState: .Normal)
button.enabled = true
button.backgroundColor = UIColor(red: 83.0/255.0, green: 184.0/255.0, blue: 224.0/255.0, alpha: 1.0)
}
questionLabel.text = question
startTimer()
}
这是我到目前为止的代码,它从plist文件中获取答案
答案
你可以试试这个:
1.根据按钮的当前字体大小定义标题大小
let nsTitle = NSString(string:"yourButtonTitle")
let font = button.titleLabel?.font
let titleSize = nsTitle.sizeWithAttributes([NSFontAttributeName:font])
2.检查您的标题是否适合按钮标题标签:
if titleSize.width > button.titleLabel?.bounds.width{
//set the appropriate font size
}else{
//set the appropriate font size or do nothing
}
另一答案
这对我有用:
button.titleLabel?.font = UIFont(name: "Avenir Next", size: 20)
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.numberOfLines = 1
button.titleLabel?.minimumScaleFactor = 0.1
button.clipsToBounds = true
另一答案
调整字体大小以适合宽度
迅速
self.button.titleLabel?.adjustsFontSizeToFitWidth = true
Objective-C的
[self.button.titleLabel setAdjustsFontSizeToFitWidth:YES];
另一答案
UIButton字体缩放可能非常易变,我以前遇到过它的问题。我所做的是使行数等于1,这对我有用。
以上是关于自动更改字体大小以适应swift中的按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 SKLabelNode 的字体大小以适应固定大小(Swift)
根据自动布局更改 UILabel 中的字体大小(swift)