2016-08-05 4 views
0

TableViewCell aus xib Datei auf UITableView ohne Wiederverwendbare Funktion nutzen zu können habe ich dieses UITableViewCell aus einer .xib Datei enter image description hereWie in Storyboard

Und ich verwende es auf einem UITableViewCell innerhalb eines Storyboards mit dem folgenden Code

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [requestTableView registerNib:[UINib nibWithNibName:@"RequestAcceptTableViewCell" bundle:nil] forCellReuseIdentifier:@"RequestAcceptCellIdentifier"]; 
    requestTableView.estimatedRowHeight=168; 
    requestTableView.rowHeight=UITableViewAutomaticDimension; 
    [requestTableView reloadData]; 
    requestTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 
} 

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 
    return 1; 
} 


-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 

    return [requestArray count]; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    RequestAcceptTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RequestAcceptCellIdentifier"]; 
    if (cell == nil) { 
     cell = [[RequestAcceptTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
               reuseIdentifier:@"RequestAcceptCellIdentifier"]; 
    } 

    return cell; 
} 

so weit das funktioniert gut: enter image description here

Aber ich will diese jedes Mal wiederverwendet UITableViewCells stoppen ich auf meinem UITableView sinc blättern e Ich möchte nur innerhalb maximal 5 UITableViewCells dort haben, habe ich versucht, mit:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    RequestAcceptTableViewCell = [[RequestAcceptTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                    reuseIdentifier:nil]; 
    return cell; 
} 

und dieses dann erhalte ich:

enter image description here

Mein UITableView hat eine UITableViewCell ohne Format, Knöpfe , Labels ... gibt es eine Möglichkeit, ein UITableViewCell mit seiner Kennung aufzurufen, ohne es wieder zu verwenden? Ich meine, es in Erinnerung behalten ...

Dank für die Unterstützung

+0

Verwenden initWithNibName statt –

+0

haben Sie ein Beispiel nennen? weil ich folgend auf meiner benutzerdefinierten UITableViewCell Klasse 'RequestAcceptTableViewCell' setzen: - (id) init { self = [super initWithNibName: @ "RequestAcceptTableViewCell" Bundle: nil]; wenn (selbst!= null) { // Weitere Initialisierung bei Bedarf } return self; } - (id) initWithNibName: (NSString *) nibName Bundle: (NSBundle *) Bündel { NSAssert (NO, @ "Initialize mit -init"); Rückkehr Null; } und ich bekomme folgende Meldung: Kein sichtbares @interface für 'UITableViewCell' deklariert den Selektor 'initWithNibName: bundle:' –

Antwort

0

Wenn Sie nicht wünschen, UITableViewCell wiederverwenden, müssen Sie:

  • Verwenden Static Cells statt Dynamic Prototypes.
  • Set Anzahl der Zeilen 5 auf: Storyboard -> Table View -> Table View Section -> Reihen: 5.
  • alle Datenquellen-Methoden entfernen (numberOfRowsInSection & cellForRowAtIndexPath) ->WICHTIG.
  • Ziehen Sie IBOutlets vom Storyboard in Ihre Implementierungsdatei.
  • Dann können Sie Ihre Etiketten/Schaltflächen/Ansichten von ihrem referenzierten IBOutlet konfigurieren.

Update:

Wenn Sie die Dynamic Prototypes Sie könnten dies tun haben wollen:

Entfernen Sie diese Zeile: RequestAcceptTableViewCell * cell = [Tableview dequeueReusableCellWithIdentifier: @ "RequestAcceptCellIdentifier"];

hinzufügen:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    RequestAcceptTableViewCell *cell = [[RequestAcceptTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; 

    return cell; 
} 
+0

aber der Inhalt von tableview wird auch immer richtig (immer 5) sein? weil ich möchte, dass sie dynamisch hinzugefügt werden, sobald ein Benutzer eine Fahrt anfordert, aber sein Limit wird immer 5 Fahrten sein, beginnend mit 0 Fahrten bis 5 Fahrten. –

Verwandte Themen