App maken: ook jij kunt het leren!

 

de iOS Academie Forums

Forums - App-ontwikkeling - Xcode: TableView - Cel met array en twee button IBActions.

Max Kievits  Max heeft nog geen Studiekaart. Klokje09 jul 2015, 10:01
Avatar
Avatar
Berichten:26
Fans:3


Hallo,

Ik ben bezig met een project waarbij ik gebruik maak van een TableView. In de TableView heb ik cellen zitten die elk twee buttons (met IBAction) en labels bevatten. Alle buttons en labels maak en verbind ik nu handmatig. Ik wil met een NSArray/NSMutableArray gaan werken, waarbij ik gewoon objecten aan die array kan toevoegen, en dat daardoor er met bijv. indexpath.row o.i.d. automatisch de bijbehorende actions en outlets worden aangemaakt. Is dit mogelijk?

Inhoud UITableViewCell:

- 2x Button (voor + en -)
- 2x Label (1 voor het tellen (met een Int) 2 voor de naam/titel)


Alvast bedankt!

Groetjes,

 

Max Kievits

Reageer


David  David heeft nog geen Studiekaart. Klokje09 jul 2015, 18:58
Avatar
Avatar
Berichten:95


ik werk zelf via proramma code, en daarbij kan het gewoon.

 

dat ziet er zo uit

 

class customCell: UITableViewCell{

var label1 = UILabel()

var label2 = UILabel()

var button1 = UIButto()

var button2 = UIButton()

var welkgetal: Int = 0

var indexpath_row = Int()

 

    override func awakeFromNib() {

        super.awakeFromNib()

   label1.frame = eenframe

  labek2.frame =.....

button1.frame = ....

button2.frame = ......

 

button.addtarget (target1)

button.addtarget(targetnogiets)

 

self.contentview.addsubview(label1)

self.contentview.add.....

self.contentview.add.....

self.contentview.add.....

 

 

  

   }

 

func target1(sender: UIButton!){

println("er is op een button gedrukt")

}

func targetnogiets(sender: UIButton!){

println("er is op een button gedrukt")

}

}

 

 

in jouw geval, omdat je met storyboard werkt, verbind je de outlet naar je class customcell, en hoef je de frame dus ook niet meer te geven en toe te voegen aan de contentview.

 

daarnaast is het ook belangrijk omdat dit goed te hebben

 

dit staat dan in je Viewcontroller:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        var cell: customCell = tableView.dequeueReusableCellWithIdentifier("cell1") as! customCell

        cell.label1.text = "(indexpat.row)"

       cell.indexpath_row = indexpath.row

        return cell

    }

 

 

 

heb je een error?

check dan het volgende:

klik op je cell in de tableview, en vervolgens:

klik op cmnd + alt + 3 , en zet de customclass op customcell

klik op cmnd + alt + 4, en geef de identifier cell, de zelfde naam als in je viewcontroller.

 

 

ik hoop dat ik je hier mee geholpen heb, ik heb het nog nooit via het storyboard gedaan. maar in principe zou het niks uit mogen maken. als je nog vragen hebt. hoor ik het graag.

 

groetjes,

 

david

Reageer

Goed advies! 2 personen vinden dit goed advies.

Max Kievits  Max heeft nog geen Studiekaart. Klokje10 jul 2015, 11:57
Avatar
Avatar
Berichten:26
Fans:3


Hallo David,

Bedankt voor je reactie. Na een beetje experimenteren is het me uiteindelijk toch gelukt. Bedankt voor je hulp!

 

Groetjes,

 

Max

Reageer

Leuk! 1 persoon vindt vindt dit leuk.