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 :

enter image description here

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 :

enter image description here

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 :

enter image description here

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

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -