Xcode 4.2 UITableview自定义单元格

Gay*_*yan 3 iphone objective-c uitableview ios5

故事板上的自定义单元格有问题.我需要从被调用的方法访问标签

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

我如何在我的代码中定义它?当我使用IBOutlet然后它可能导致错误.

那我该如何访问标签呢

cell.textlable.text ??

在此输入图像描述

非常感谢.

uta*_*hak 13

我会继承UITableViewCell.在子类内部创建IBOutlets,然后您可以以常规方式访问它们并在界面构建器中进行设置.只需确保并将原型单元设置为该类.然后出口将出现,你可以用你想要的点语法访问它们.

一个例子是:

@interface CustomCell : UITableViewCell
{
}
@property (nonatomic, retain) IBOutlet UILabel* customLabel;

@end
Run Code Online (Sandbox Code Playgroud)

而且实施也很简单

#import CustomCell.h
@implementation CustomCell

@synthesize customLabel;

@end
Run Code Online (Sandbox Code Playgroud)

就这么简单,然后在你的方法中你会做这样的事情:

CustonmCell* cell = [tableView dequeueReusableCellWithIdentifier:@"customCell"];
cell.customLabel = //whatever
//or
UILabel* mylabel = cell.customLabel;
Run Code Online (Sandbox Code Playgroud)

您可以根据需要添加任意数量的插座,并以类似的方式访问它们.


rob*_*off 6

一个常见的解决方案是在故事板中为每个标签添加一个标签,然后使用标签viewWithTag:查找代码,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = blah blah blah ...
    ...
    UILabel *myLabel = [cell viewWithTag:1];
    UILabel *anotherLabel = [cell viewWithTag:2];
    // etc.
}
Run Code Online (Sandbox Code Playgroud)