ios - Custom UITableViewCell functions are called, but native table is presented -


custom uitableviewcell functions called, native table presented

this code in init function:

self.answerstable = [[uitableview alloc]initwithframe:cgrectmake(0, 45, 280, 500)]; self.answerstable.datasource = self; self.answerstable.delegate = self; 

this code in viewdidload function:

[self.answerstable registerclass:[answertableviewcell class]            forcellreuseidentifier:cellidentifier]; 

this table delegate functions, called, , cell not nil in end of it:

-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section {     return [self.question.answers count]; }  -(answertableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath {      answertableviewcell *cell = [tableview dequeuereusablecellwithidentifier:cellidentifier];     if (cell == nil) {         cell = [[answertableviewcell alloc] initwithstyle:uitableviewcellstyledefault reuseidentifier:cellidentifier];     }     answerobject* answer = self.question.answers[indexpath.row];      [cell setupanswertableviewcell:self.question answer:answer row:indexpath.row];      return cell; } 

and here answertableviewcell:

#import "answertableviewcell.h"  @implementation answertableviewcell  - (id)init {     self = [super init];     if (self) {         self.frame = cgrectmake(0, 0, 280, 77);          self.answerlabel = [[uilabel alloc]initwithframe:cgrectmake(0, 0, self.frame.size.width-20, self.frame.size.height)];         self.answerlabel.numberoflines = 0;         self.answerlabel.textcolor = [uicolor whitecolor];         self.answerlabel.font = [uifont fontwithname:@"helveticaneue-medium" size:20];          self.answertoggle = [[uibutton alloc]initwithframe:cgrectmake(self.frame.size.width-50, 23, 30, 30)];         self.backgroundimage = [[uiimageview alloc]initwithframe:self.frame];          [self addsubview:self.answerlabel];         [self addsubview:self.answertoggle];         [self addsubview:self.backgroundimage];    }     return self; } - (id)initwithstyle:(uitableviewcellstyle)style reuseidentifier:(nsstring *)reuseidentifier {     self = [super initwithstyle:style reuseidentifier:reuseidentifier];     if (self) {         self.frame = cgrectmake(0, 0, 280, 77);          self.answerlabel = [[uilabel alloc]initwithframe:cgrectmake(0, 0, self.frame.size.width-20, self.frame.size.height)];         self.answerlabel.numberoflines = 0;         self.answerlabel.textcolor = [uicolor whitecolor];         self.answerlabel.font = [uifont fontwithname:@"helveticaneue-medium" size:20];          self.answertoggle = [[uibutton alloc]initwithframe:cgrectmake(self.frame.size.width-50, 23, 30, 30)];         self.backgroundimage = [[uiimageview alloc]initwithframe:self.frame];          [self addsubview:self.answerlabel];         [self addsubview:self.answertoggle];         [self addsubview:self.backgroundimage];    }     return self; }  -(void)setupanswertableviewcell:(questionobject*)question                          answer:(answerobject*)answer                             row:(nsinteger)row{     self.question = question;     self.answer = answer;     self.row = row;      self.answerlabel.text = answer.answertext;      [self.answertoggle addtarget:self                           action:@selector(flip:)                 forcontrolevents:uicontroleventtouchdown];       self.answertoggle.tag = [answer.answerid intvalue];      if (self.row == 0) {         self.backgroundimage.image = [uiimage imagenamed:@"list_top_item_not_selected_612x113px.png"];     }     else if (self.row == ([self.question.answers count] - 1)){         self.backgroundimage.image = [uiimage imagenamed:@"list_bottom_item_not_selected_612x113px.png"];     }     else{         self.backgroundimage.image = [uiimage imagenamed:@"list_item_not_selected_612x113px.png"];     }  } 

so, whats wrong?

the problem is:

cell = [[answertableviewcell alloc] initwithstyle:uitableviewcellstyledefault reuseidentifier:cellidentifier]; 

specifically: uitableviewcellstyledefault

you're asking create cell default style. either use [[answertableviewcell alloc] init]; , set reuse identifier. or create own init takes in reuse identifier without style param

edit:

after cell code added believe issue using init function add ui elements. these being overridden cells uiview contentview. contentview need customise in order add these elements.

this article walk through how , using drawrect method customise uiview.

http://blog.giorgiocalderolla.com/2011/04/16/customizing-uitableviewcells-a-better-way/


Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -