以编程方式自定义UITableViewCell

时间:2014-02-09 12:19:22

标签: ios iphone objective-c uitableview

我的源代码不使用storyboard或xib。它包含一个UITableView,单元格使用标准的cell.textlabel。

我想要的是使用自定义TableViewCell,通常我会创建一个UITableViewCell类并在故事板中连接它们,但我不能在这里连接它们,因为它不使用storyboard或xib。

我有以下UITableViewClass

@interface chatCell : UITableViewCell
@property(nonatomic, weak) IBOutlet UIImageView *homeTeamImage;
@property(nonatomic, weak) IBOutlet UILabel *homeTeamLabel;
@property(nonatomic, weak) IBOutlet UIImageView *awayTeamImage;
@property(nonatomic, weak) IBOutlet UILabel *awayTeamLabel;
@end

如何将它们放在TableViewCell中并将它们连接到属性?

所以我可以开始使用

cell.homeTeamImage
cell.homeTeamLabel
cell.awayTeamImage
cell.awayTeamLabel

4 个答案:

答案 0 :(得分:1)

您不需要使用IBOutlet,因为您不想使用IB中的属性

@interface chatCell : UITableViewCell
{
    UIImageView *homeTeamImage;
    UILabel *homeTeamLabel;
    UIImageView *awayTeamImage;
    UILabel *awayTeamLabel;
}

@property(nonatomic, weak) UIImageView *homeTeamImage;
@property(nonatomic, weak) UILabel *homeTeamLabel;
@property(nonatomic, weak) UIImageView *awayTeamImage;
@property(nonatomic, weak) UILabel *awayTeamLabel;

@end

并且不要忘记

@synthesize homeTeamImage, ...; 

在您的实施文件中。

答案 1 :(得分:0)

您可以覆盖- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath。而不是返回标准的UITableViewCell,你可以返回你的

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    chatCell c = [[chatCell alloc] init];
    return c;
}

您不需要IBOutlet关键字:它不是类型,只有在使用故事板时才由xcode使用。我认为如果没有故事板,您应该将属性更改为强指针,因为没有其他人强烈指向它们,因此它们将被删除。

如果您使用xcode 5,则@synthesize不是必需的。仅当您覆盖属性的setter和getter时才需要它。

答案 2 :(得分:0)

请参阅“适用于iOS的表格视图编程指南”中的Programmatically Adding Subviews to a Cell’s Content View。在此示例中,单元格在tableView:cellForRowAtIndexPath:中创建,但您可以在UITableViewCell子类中使用相同的方法(在单元格的内容视图上添加视图)。

答案 3 :(得分:0)

@interface chatCell : UITableViewCell
{
    UIImageView *homeTeamImage;
    UILabel *homeTeamLabel;
    UIImageView *awayTeamImage;
    UILabel *awayTeamLabel;
}

@property(nonatomic, weak) UIImageView *homeTeamImage;
@property(nonatomic, weak) UILabel *homeTeamLabel;
@property(nonatomic, weak) UIImageView *awayTeamImage;
@property(nonatomic, weak) UILabel *awayTeamLabel;

@end


and don't forget to

    enter code here

@synthesize "All properties"