2016-08-06 60 views
1

Ich mache ein Etikett überschreibt, und zu versuchen, die Schriftart auf „Avenir“ wie folgt festgelegt:Rahmen Schrift erfordert Größe, die sizeToFit() Swift

let usernameLabel: UILabel 
    usernameLabel = UILabel(frame: CGRect(x: 20, y: third * screenHeight + sixth * screenHeight, width: third * screenWidth, height: 30)) 
    usernameLabel.text = "Username" 
    usernameLabel.font = UIFont(name: "Avenir", size: 30) // Where I set the font 
    usernameLabel.sizeToFit() 
    usernameLabel.textColor = UIColor.gray() 
    self.view.addSubview(usernameLabel) 

jedoch möchte ich die Größe dynamisch mit usernameLabel einzustellen. sizeToFit(), dies hat jedoch keine Auswirkung, da ich beim Einstellen der Schriftart eine Größe festlegen muss, und wenn ich versuche, die Größenoption nicht zu verwenden, gibt es einen Fehler zurück.

+0

Try [usernameLabel setAdjustsFontSizeToFitWidth: YES]; –

Antwort

0

Es klingt wie Sie die Schriftart skalieren möchten, um die Rahmengröße anzupassen.

So ersetzen:

usernameLabel.sizeToFit() // Modify the frame to fit the label 

mit:

usernameLabel.adjustsFontSizeToFitWidth = true // Modify the font size to fit the frame 
1

Sie so etwas wie dies versuchen,

let str = "your string" as NSString 

    if let font = UIFont(name: "Arial", size: 30) { 

     let size = str.sizeWithAttributes([NSFontAttributeName : font]) 

     label.frame = CGRectMake(x, y, size.width, height) 
     label.text = "your string" 
    } 
+0

Auch sehr gute Antwort, vielen Dank. – RufusV