Ich habe SQLite-Datenbank-Datei und UILabel, und ich Text für Label aus der Datenbank auf die Anzahl der Zeichen nach String
zu setzen, und ich habe die Erweiterung seinen Namen hinzugefügt (length
) , der Job zählt die Anzahl der Zeichen.Organisieren Sie und passen Sie die UILabel Position pro Geräte - Swift 3
Mein Problem in diesem Bild ist: Die UILabels sind in den Größen und Positionen in pro-Geräten nicht organisiert ich sie will, dass ihre Positionen in dem Zentrum haben X-Achse
Fragen :
1) wie die etikette in mitte und stellen räume rechts und links von bildschirm für etiketten (pro gerät) ??
2) Wie Breite für Etiketten setzen, wenn Gerät iPhone 7/6S/6 und Breite = 50, wenn das Gerät iPhone 7/6S/6 Breite = 45, und wenn Gerät iPhone SE/5S/5C/5 Breite = 38 ??
3) Wie wird die Beschriftung schließlich um 10 kleiner, wenn die Anzahl der Zeichen mehr als 8 beträgt?
Das ist mein Code:
func createTarget(id: Int) {
listdata = dbHelpr.getDatabase(rowId: id)
for data in listdata {
let lengthOfChar : CGFloat = data.ans.length
let yAxis : CGFloat = (self.view.frame.height) * 60%
let width: CGFloat = view.frame.size.width - 40 // frame width
var targetWidth: CGFloat = (width - (lengthOfChar - 1) * 5)/lengthOfChar
let targetHeigt : CGFloat = 5
if lengthOfChar >= 8 {
targetWidth = 40
} else {
targetWidth = 50
}
let totalWidth: CGFloat = (targetWidth * lengthOfChar) + ((lengthOfChar - 5) * 5)
for (indexTar, tar) in data.ans.characters.enumerated() {
let x : CGFloat = (width/2) - (totalWidth/2)
let xx : CGFloat = (CGFloat(indexTar) * targetWidth) + (CGFloat(indexTar) * 5) + 20
var xAxis : CGFloat = (x + xx)
xAxis = width - xAxis
let targetLabel = UILabel(frame: CGRect(x: xAxis, y: yAxis, width: targetWidth, height: targetHeigt))
targetLabel.backgroundColor = .white
targetLabel.layer.masksToBounds = true
targetLabel.layer.cornerRadius = 5
targetLabel.text = String(describing: tar)
targetLabel.textAlignment = .center
targetLabel.textColor = .white
self.view.addSubview(targetLabel)
}
}
}
Ist mir jemand antworten bitte?! –
Sie sollten dafür das automatische Layout verwenden. – dfd
Ich weiß, Auto-Layout verwenden, aber ich möchte nicht automatisch Layout verwenden, ich brauche programmgesteuert @dfd –