[英]label is not showing on tableView cell
我正在創建一個包含20行的TableView
我必須在偶數單元格中添加單個標簽,我必須在奇數單元格中添加兩個標簽。當我添加所需的標簽並滾動我的表格時,標簽會因為我下去幫助我而失望出。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// UITableView *cell=[tableView ]
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
if(indexPath.row%2==0)
{
UILabel *cellLabel=[[UILabel alloc]initWithFrame:CGRectMake(100, 40, 40, 40)];
cellLabel.text=@"o1";
[cell addSubview:cellLabel];
[cellLabel release];
}
else
{
UILabel *cellLabel1=[[UILabel alloc]initWithFrame:CGRectMake(100, 40, 40, 40)];
cellLabel1.text=@"e1";
[cell addSubview:cellLabel1];
[cellLabel1 release];
UILabel *cellLabel2=[[UILabel alloc]initWithFrame:CGRectMake(150, 40, 40, 40)];
cellLabel2.text=@"e2";
[cell addSubview:cellLabel2];
[cellLabel2 release];
}
}
檢查一下。 這和你的代碼一樣,我只是改變了每個標簽的Y位置,並且滾動工作正常。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{static NSString * CellIdentifier = @“Cell”;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// UITableView *cell=[tableView ]
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
if(indexPath.row%2==0)
{
UILabel *cellLabel=[[UILabel alloc]initWithFrame:CGRectMake(100, 10, 40, 40)];
cellLabel.text=@"o1";
[cell addSubview:cellLabel];
}
else
{
UILabel *cellLabel1=[[UILabel alloc]initWithFrame:CGRectMake(100, 10, 40, 40)];
cellLabel1.text=@"e1";
[cell addSubview:cellLabel1];
UILabel *cellLabel2=[[UILabel alloc]initWithFrame:CGRectMake(150, 10, 40, 40)];
cellLabel2.text=@"e2";
[cell addSubview:cellLabel2];
}
}
return cell;
}
像這樣做 :
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// UITableView *cell=[tableView ]
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UILabel *cellLabel=[[UILabel alloc]initWithFrame:CGRectMake(100, 40, 40, 40)];
cellLabel.text=@"o1";
cellLabel.tag = 2;
[cell addSubview:cellLabel];
[cellLabel release];
UILabel *cellLabel1=[[UILabel alloc]initWithFrame:CGRectMake(100, 40, 40, 40)];
cellLabel1.text=@"e1";
cellLable1.tag = 3;
[cell addSubview:cellLabel1];
[cellLabel1 release];
UILabel *cellLabel2=[[UILabel alloc]initWithFrame:CGRectMake(150, 40, 40, 40)];
cellLabel2.text=@"e2";
cellLabel2.tag = 4;
[cell addSubview:cellLabel2];
[cellLabel2 release];
}
UILabel *label1 = (UILabel *) [cell viewWithTag:2];
UILabel *label2 = (UILabel *) [cell viewWithTag:3];
UILabel *label3 = (UILabel *) [cell viewWithTag:4];
if (indexPath.row%2==0)
{
label1.hidden = FALSE;
label2.hidden = TRUE;
label3.hidden = TRUE:
}
else
{
label1.hidden = TRUE;
label2.hidden = FALSE;
label3.hidden = FALSE;
}
}
這兩種細胞是不同的,所以我會為每種細胞制作不同的細胞標識符。 就像是:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *EvenCellIdentifier = @"EvenCell";
static NSString *OddCellIdentifier = @"OddCell";
NSString* cellIdentifier = (indexPath.row % 2) == 0 ? EvenCellIdentifier : OddCellIdentifier;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
if(indexPath.row%2==0)
{
UILabel *cellLabel=[[UILabel alloc]initWithFrame:CGRectMake(100, 40, 40, 40)];
cellLabel.text=@"o1";
[cell addSubview:cellLabel];
[cellLabel release];
}
else
{
UILabel *cellLabel1=[[UILabel alloc]initWithFrame:CGRectMake(100, 40, 40, 40)];
cellLabel1.text=@"e1";
[cell addSubview:cellLabel1];
[cellLabel1 release];
UILabel *cellLabel2=[[UILabel alloc]initWithFrame:CGRectMake(150, 40, 40, 40)];
cellLabel2.text=@"e2";
[cell addSubview:cellLabel2];
[cellLabel2 release];
}
}
return cell;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *MyIdentifier = @"MyIdentifier"; static NSString *MyIdentifier1 = @"MyIdentifier1"; UITableViewCell *cell; if(indexPath.row % 2 != 0) { cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; } else { cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier1]; } if(cell == nil) { if(indexPath.row % 2 != 0) { cell=[self reuseTableViewCellWithIdentifier:MyIdentifier withIndexPath:indexPath]; } else { cell=[self reuseTableViewCellWithIdentifier:MyIdentifier1 withIndexPath:indexPath]; } } cell.selectionStyle = UITableViewCellSelectionStyleNone; return cell; } -(UITableViewCell *)reuseTableViewCellWithIdentifier:(NSString *)identifier withIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]autorelease]; if([identifier isEqualToString:@"MyIdentifier"]) { UILabel *l1=[[[UILabel alloc]initWithFrame:CGRectMake(5, 5, 30, 20)]autorelease]; l1.backgroundColor=[UIColor redColor]; [cell.contentView addSubview:l1]; UILabel *l2=[[[UILabel alloc]initWithFrame:CGRectMake(65, 5, 30, 20)]autorelease]; l2.backgroundColor=[UIColor grayColor]; [cell.contentView addSubview:l2]; } else { UILabel *l1=[[[UILabel alloc]initWithFrame:CGRectMake(5, 5, 30, 20)]autorelease]; l1.backgroundColor=[UIColor blueColor]; [cell.contentView addSubview:l1]; } return cell; }
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if(indexPath.row%2==0) { static NSString *CellIdentifier = @"CustomCell"; CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil]; for (id currentObject in topLevelObjects) { if ([currentObject isKindOfClass:[UITableViewCell class]]) { cell = (CustomCell *) currentObject; break; } } } cell.capitalLabel.text =[capitals objectAtIndex:indexPath.row]; cell.stateLabel.text = [states objectAtIndex:indexPath.row]; cell.t1.delegate=self; cell.t1.tag=indexPath.row; cell.t1.text=[arrTemp objectAtIndex:indexPath.row]; cell.s1.backgroundColor=[UIColor grayColor]; cell.s1.contentSize=CGSizeMake(1000, 40); return cell; } else { static NSString *CellIdentifier1 = @"CustomCell1"; CustomCell1 *cell1 = (CustomCell1 *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; if (cell1 == nil) { NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell1" owner:self options:nil]; for (id currentObject in topLevelObjects) { if ([currentObject isKindOfClass:[UITableViewCell class]]) { cell1 = (CustomCell1 *) currentObject; break; } } } cell1.l1.text=@"alok"; return cell1; } }
static NSString *CellIdentifier = @"Cell";
static NSString *CellIdentifierButton = @"CellButton";
UITableViewCell *cell = nil;
if (indexPath.section <=2)
{
if(indexPath.section==2&&indexPath.row==4)
{
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierButton];
}
else
{
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}
}
if (cell == nil)
{
if (indexPath.section <=2)
{
if(indexPath.section==2&&indexPath.row==4)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifierButton];
UIButton *b1 = [[UIButton alloc]initWithFrame:CGRectMake(200, 10, 300, 80)];
[b1 setBackgroundColor:[UIColor redColor]];
[b1 setTag:501];
[cell.contentView b1];
UIButton * b2 = [[UIButton alloc]initWithFrame:CGRectMake(200, 120, 300, 80)];
[b2 setBackgroundColor:[UIColor redColor]];
[b2 setTag:502];
[cell.contentView b2];
}
else
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 0, 250, 44)];
[label setBackgroundColor:[UIColor clearColor]];
[label setTag:500];
[cell.contentView addSubview:label];
//end for section 1
//for section2
}
//end for section 2
}
}
}
//====setting the values===//
if (indexPath.section ==0)
{
UILabel *label = (UILabel *)[cell.contentView viewWithTag:500];
if (label) {
[label setText:[arr1 objectAtIndex:indexPath.row]];
}
}
if (indexPath.section ==1)
{
UILabel *label = (UILabel *)[cell.contentView viewWithTag:500];
if (label) {
[label setText:[arr2 objectAtIndex:indexPath.row]];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.