UITableViewDataSource tableView cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Parameters
tableView
A table-view object requesting the cell.
indexPath
An index path locating a row in tableView.
Return Value of [UITableViewDataSource tableView cellForRowAtIndexPath]
An object inheriting from UITableViewCell that the table view can use for the specified row. An assertion is raised if you return nil.
Discussion of [UITableViewDataSource tableView cellForRowAtIndexPath]
The returned UITableViewCell object is frequently one that the application reuses for performance reasons. You should fetch a previously created cell object that is marked for reuse by sending a dequeueReusableCellWithIdentifier: message to tableView. The identifier for a reusable cell object is assigned when the delegate initializes the cell object by calling the initWithStyle:reuseIdentifier: method of UITableViewCell. Various attributes of a table cell are set automatically based on whether the cell is a separator and on information the data source provides, such as for accessory views and editing controls.
UITableViewDataSource tableView cellForRowAtIndexPath example.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSInteger section = [indexPath section];
switch (section) {
case 0: // First cell in section 1
cell.textLabel.text = [collectionHelpTitles objectAtIndex:[indexPath row]];
break;
case 1: // Second cell in section 1
cell.textLabel.text = [noteHelpTitles objectAtIndex:[indexPath row]];
break;
case 2: // Third cell in section 1
cell.textLabel.text = [checklistHelpTitles objectAtIndex:[indexPath row]];
break;
case 3: // Fourth cell in section 1
cell.textLabel.text = [photoHelpTitles objectAtIndex:[indexPath row]];
break;
default:
// Do something else here if a cell other than 1,2,3 or 4 is requested
break;
}
return cell;
}
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSInteger section = [indexPath section];
switch (section) {
case 0: // First cell in section 1
cell.textLabel.text = [collectionHelpTitles objectAtIndex:[indexPath row]];
break;
case 1: // Second cell in section 1
cell.textLabel.text = [noteHelpTitles objectAtIndex:[indexPath row]];
break;
case 2: // Third cell in section 1
cell.textLabel.text = [checklistHelpTitles objectAtIndex:[indexPath row]];
break;
case 3: // Fourth cell in section 1
cell.textLabel.text = [photoHelpTitles objectAtIndex:[indexPath row]];
break;
default:
// Do something else here if a cell other than 1,2,3 or 4 is requested
break;
}
return cell;
}
Example of [UITableViewDataSource tableView cellForRowAtIndexPath].
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.section==0)
{............
return cell;
}
else if(indexpath.section==1)
{
.....
return cellbutton;
}
}
if(indexPath.section==0)
{............
return cell;
}
else if(indexpath.section==1)
{
.....
return cellbutton;
}
}
UITableViewDataSource tableView cellForRowAtIndexPath example.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.row == 0) {
ArticleDetailCell *cell = (ArticleDetailCell *)[tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"%@Detail",reuseIdentifier]];
if(!cell) {
[[NSBundle mainBundle] loadNibNamed:@"ArticleDetailCell" owner:self options:nil];
cell = articleDetail;
[self setArticleDetail:nil];
}
[[cell judges] setText:[[self caseBaseArticle] judges]];
[[cell judgementDate] setText:[[self caseBaseArticle] judgmentDate]];
[[cell court] setText:[[self caseBaseArticle] court]];
return cell;
} else {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
if(!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier] autorelease];
[[cell textLabel] setNumberOfLines:1];
[[cell textLabel] setFont:[UIFont systemFontOfSize:14]];
[[cell textLabel] setText:articleRowTitles[indexPath.row-1]];
}
if ([self tableRowHasContentDetail:indexPath]) {
[self enableTableCell:&cell];
}else {
[self disableTableCell:&cell];
}
return cell;
}
}
if(indexPath.row == 0) {
ArticleDetailCell *cell = (ArticleDetailCell *)[tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"%@Detail",reuseIdentifier]];
if(!cell) {
[[NSBundle mainBundle] loadNibNamed:@"ArticleDetailCell" owner:self options:nil];
cell = articleDetail;
[self setArticleDetail:nil];
}
[[cell judges] setText:[[self caseBaseArticle] judges]];
[[cell judgementDate] setText:[[self caseBaseArticle] judgmentDate]];
[[cell court] setText:[[self caseBaseArticle] court]];
return cell;
} else {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
if(!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier] autorelease];
[[cell textLabel] setNumberOfLines:1];
[[cell textLabel] setFont:[UIFont systemFontOfSize:14]];
[[cell textLabel] setText:articleRowTitles[indexPath.row-1]];
}
if ([self tableRowHasContentDetail:indexPath]) {
[self enableTableCell:&cell];
}else {
[self disableTableCell:&cell];
}
return cell;
}
}