2016-06-27 16 views
8

Ho provato questo ma non ha funzionato, il testo è fuori dai limiti del pulsante.Cambia automaticamente la dimensione del carattere per adattarsi al pulsante in rapido

button.titleLabel!.adjustsFontSizeToFitWidth = true 
button.titleLabel!.numberOfLines = 0 
button.titleLabel!.minimumScaleFactor = 0.1 

Quando provo il seguente, tutto il testo si adatta, ma il testo rimane in una piccola fonte:

button.titleLabel!.font = UIFont(name: "Heiti TC", size: 9) 

Come posso ottenere il tipo di carattere per adattare automaticamente le dimensioni del pulsante?

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() 
} 

Questo è il codice che ho finora ottiene le risposte da un file plist

+0

'adjustsFontSizeToFitWidth = true' ha lavorato per me. – keithbhunter

+0

Non ha funzionato il testo era della stessa dimensione ed è uscito dal limite del pulsante – acekidd

risposta

4

si può provare questo:

1.define la dimensione del titolo in base alla dimensione del carattere corrente del pulsante

let nsTitle = NSString(string:"yourButtonTitle") 
let font = button.titleLabel?.font 
let titleSize = nsTitle.sizeWithAttributes([NSFontAttributeName:font]) 

2.check se il titolo si inserisce l'etichetta titolo tasto:

if titleSize.width > button.titleLabel?.bounds.width{ 

    //set the appropriate font size 

}else{ 

    //set the appropriate font size or do nothing 
} 
0

Il ridimensionamento dei caratteri UIButton può essere molto volubile, in passato ho avuto problemi. Quello che ho fatto è stato rendere il numero di linee uguale a 1, che ha funzionato per me.

2

questo ha funzionato per me:

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 
+1

Grazie, ha funzionato perfettamente per me !! ;-) –

Problemi correlati