arrays - Add text of UILabel from database by loop - Swift 3 -
i'm creating uilabel
for
loop , wanna adding text in uilabel
database, text in database string
i'm converting string
array characters
, example i've 4 labels , 4 characters (a, b, c, d), i want add each characters in 1 label how can ??
i wanna create :
and code :
func createtarget(id: int) { listdata = dbhelpr.getdatabase(rowid: id) var targetheigt = cgfloat() let viewwidth = self.view.frame.size.width if viewwidth == 320 { targetheigt = 2.5 } else { targetheigt = 5 } data in listdata { // listdata (database) has variable (ans) let yaxis : cgfloat = (self.view.frame.height) * 60% let = data.ans.length // char count let width: int = int(view.frame.size.width) - 40 // frame width var targetwidth: int = (width - (i - 1) * 5) / if targetwidth > 50 { targetwidth = 50 } let totalwidth: int = (targetwidth * i) + ((i - 1) * 5) x in 0..<i { let currentwidth: int = (width / 2) - (totalwidth / 2) + (x * targetwidth) + (x * 5) + 20 let targetlabel = uilabel(frame: cgrect(x: cgfloat(currentwidth), y: yaxis, width: cgfloat(targetwidth), height: 50)) targetlabel.backgroundcolor = .white targetlabel.layer.maskstobounds = true targetlabel.layer.cornerradius = 5 targetlabel.textalignment = .center targetlabel.textcolor = .black tar in data.ans.characters { targetlabel.text = string(tar) } self.view.addsubview(targetlabel) } } }
when run code above show me :
my output :
d
d
d
d
and when edited , added code :
for data in listdata { // listdata (database) has variable (ans) let tar = data.ans.characters.map{string($0)} lbllabel.text = tar.joined(separator: " ") }
this result of code above :
my output :
d c b a
d c b a
d c b a
d c b a
what's best solve create label whit characters 1st picture ??
you're creating 1 label each character, there no need loop on them again.
try this:
for (x, tar) in data.ans.characters.reversed().enumerated() { let currentwidth: int = (width / 2) - (totalwidth / 2) + (x * targetwidth) + (x * 5) + 20 let targetlabel = uilabel(frame: cgrect(x: cgfloat(currentwidth), y: yaxis, width: cgfloat(targetwidth), height: 50)) targetlabel.backgroundcolor = .white targetlabel.layer.maskstobounds = true targetlabel.layer.cornerradius = 5 targetlabel.textalignment = .center targetlabel.textcolor = .black targetlabel.text = string(tar) self.view.addsubview(targetlabel) }
Comments
Post a Comment