自定义UITableViewCell不会在故事板中显示标签

时间:2012-07-05 06:44:25

标签: iphone xcode uitableview uistoryboard

Custom UITableViewCell in UITableView

enter image description here

在此屏幕截图中,您可以看到我在UIViewController中添加了UITableView,然后通过在其中添加一些标签来自定义UITableViewCell。但问题是我运行应用程序时。所有细胞都是空的。根本没有标签。

Empty Cells

我没有得到可能的问题。我搜索了网页并阅读了教程,但无法解决。

4 个答案:

答案 0 :(得分:4)

我自己解决了这个问题,只需要很少的努力 实际上,当您创建自定义单元格时,您必须执行以下操作:

  1. 在故事板上设置标签,图片等。
  2. 创建一个自定义单元类(继承自UITableViewCell)(CustomCell.h& .m),CustomCell.h具有标签,图像等iboutlet的所有属性,并在实现中合成它们。
  3. 创建此自定义类后,返回故事板,选择自定义单元格,将其类更改为CustomCell并为其指定一些标识符,如“MyCustomCell”,然后右键单击自定义单元格并将IBOutlets与标签等连接。 / LI>
  4. 现在,在要实现UITableView的类中导入CustomCell类,并使用在CustomCell类中定义的属性。

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *MyIdentifier = @"MyCustomCell";
    
        CustomCell*cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    
        if (cell == nil)
        {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                           reuseIdentifier:MyIdentifier] autorelease];
        }
    
        // Here we use the provided setImageWithURL: method to load the web image
        // Ensure you use a placeholder image otherwise cells will be initialized with no image
        [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"]
                       placeholderImage:[UIImage imageNamed:@"placeholder"]];
            cell.myCustomLabel.text = @"My Text";
        return cell;
    }
    
  5. 我做了这一切,我的问题得到了解决,请不要忘记连接代表和&数据源和表。

    希望这会对别人有所帮助。

答案 1 :(得分:1)

有点迟,但您可以通过在故事板中将视图的背景颜色设置为“清除颜色”来解决您的问题。

答案 2 :(得分:0)

在tableview的委托方法中,cellforrowatindexpath里面有一个uitableviewcell,在这个单元格的初始化中应该有一个标识符。可能是“cell”或“c​​ellIdentifier”。

您只需从故事板中选择您的单元格,然后在故事板中输入此标识符字符串,其中uitableviewcell的属性检查器将保留。

希望这有助于.. :))

答案 3 :(得分:0)

首先在故事板中设置单元格标识符@“Cell”

然后设置标签

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

// Create
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
}



UILabel *lblDate = (UILabel*)[cell viewWithTag:101];
UILabel *lblDistance = (UILabel*)[cell viewWithTag:102];
UILabel *lbltype = (UILabel*)[cell viewWithTag:103];

lblDate.text = [temp objectAtIndex:indexPath.row] valueForKey:@"date"] stringByReplacingOccurrencesOfString:@"-" withString:@"/"]];
lblDistance.text = [NSString stringWithFormat:@"%@ KM",[[temp objectAtIndex:indexPath.row] valueForKey:@"distance"]];

NSString *type = [NSString stringWithFormat:@"%@",[[temp objectAtIndex:indexPath.row] valueForKey:@"distance"]];
if([type isEqualToString:@"0"])
{
    lbltype.text = @"Personal";
}
else
{
    lbltype.text = @"Bussiness";
}
// Configure
return cell;
}