Ich bin Tasten programmatisch wie folgt zu erstellen:Swift-Taste muss erstellt programmatisch 2 Zeilen für den Titel haben
let stage: Stages = stagesObjectsArray[i]
let button = UIButton(type: .Custom) as UIButton
button.setTitle(stage.name, forState: .Normal)
button.sizeToFit()
button.frame.origin = buttonPosition
let buttonIncrement = button.frame.size.width + padding.width
buttonPosition.x = buttonPosition.x + buttonIncrement
button.backgroundColor = UIColor.blackColor()
button.titleLabel?.font = UIFont(name: "", size: widthOfScreen/3.2)
button.setTitleColor(UIColor.darkGrayColor(), forState: UIControlState.Normal)
button.tag = stage.id
button.addTarget(self, action: #selector(GamesAllViewController.buttonPressedTopMenu(_:)), forControlEvents: .TouchUpInside)
buttonView.addSubview(button)
Was ich umsetzen will und kann nicht herausfinden, wie der Titel der Schaltfläche haben, ist auf 2 Zeilen, wenn die Breite der Schaltfläche zu groß wird (z. B. mehr als die Hälfte der Breite des Bildschirms).
Ich habe einige Fragen zu diesem Thema gefunden, aber alle gehen davon aus, dass sie den Titel der Schaltfläche kennen, während es in meinem Fall dynamisch ist und ich nicht weiß, was es sein könnte.
Ich habe diesen Code versucht, aber ohne Änderung:
button.titleLabel!.lineBreakMode = NSLineBreakMode.ByWordWrapping
button.titleLabel!.numberOfLines = 2
Kann jemand helfen?
Ich weiß nicht, den Titel der zuvor Taste verwenden, ist es vom Server kommt, Ich kann nicht wissen, wo ich einführen soll \ n – asheyla
In diesem Fall müssen Sie die Breite von UIButton dynamisch durch Daten vom Server berechnen und numberOfLines = 0 behalten, ansonsten können Sie einen Trick machen, UIView mit falscher textView/label-Interaktion verwenden und eine Schaltfläche darauf klicken dann ein s pro Server-Daten müssen Sie Frame für UIView setzen, auch cliptoBounds für UIView wahr machen. – Hasya
Haben Sie eine Lösung gefunden? – Hasya