I have tried this but it didn't work, the text is out of the button boundaries.
button.titleLabel!.adjustsFontSizeToFitWidth = true
button.titleLabel!.numberOfLines = 0
button.titleLabel!.minimumScaleFactor = 0.1
When I try the following, all the text fits, but the text remains in a small font:
button.titleLabel!.font = UIFont(name: "Heiti TC", size: 9)
How can I get the font to automatically fit the size of the button?
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()
}
That is the code I have so far it gets the answers from a plist file
This worked for me:
You can try this:
1.define the title size based on the current font size of your button
2.check whether your title fits the button title label :
Adjust font size to fit width
Swift
Objective-C
UIButton font scaling can be very fickle, I've had problems with it in the past. What I did was make the number of lines equal to 1, which worked for me.