チケットを生成するクラスを作成しました。チケットが生成されたら、それをテーブル ビューに 1 つずつ表示します。そのクラスのプロトコルを作成し、チケットの準備ができたらtableView
、テーブル ビューをリロードするデリゲートにメッセージを送信します。reload
メソッドが呼び出されると 、tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
新しいチケットが生成されるたびに呼び出されますが
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
、チケットが生成されるたびに呼び出されるのではなく、すべてのチケットが生成されると呼び出されます
以下はコードです
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (self.ticketGenerator == nil) {
return 0;
}
else{
return self.ticketGenerator.ticketNumbers.count;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
HSEticketView *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[HSEticketView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
[cell Tickets:[self.ticketGenerator.ticketNumbers objectAtIndex:indexPath.row]];
}
// Configure the cell...
return cell;
}
//to increase the height of the cell
- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 135;
}
-(void)background
{
[self.ticketGenerator GenerateNoOfTickets:[self.enteredNo.text intValue]:self];
}
- (IBAction)done:(id)sender {
[self.enteredNo resignFirstResponder];
self.enteredNo.hidden = YES;
self.label.hidden = YES;
self.button.hidden = YES;
self.tableView.hidden = NO;
[self performSelectorInBackground:@selector(background) withObject:nil];
NSLog(@"dgf");
}
#pragma ticketGenrate delgate methods
-(void)generationOfTicketCompleated
{
[self.tableView reloadData];
}