Iphone Xcode 4.2 UITableview自定义单元格

Iphone Xcode 4.2 UITableview自定义单元格,iphone,objective-c,uitableview,ios5,Iphone,Objective C,Uitableview,Ios5,故事板上的自定义单元格有问题。我需要从调用的方法访问标签 -(UITableView单元格*)tableView:(UITableView*)tableView单元格for行索引路径:(nsindepath*)indepath 如何在代码中定义它?当我使用IBOutlet时,它可能会导致错误 那么我怎样才能像这样访问标签呢 cell.textable.text 非常感谢。一个常见的解决方案是在情节提要中为每个标签指定一个标记,然后使用viewWithTag:在代码中查找标签,如下所示: - (

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

-(UITableView单元格*)tableView:(UITableView*)tableView单元格for行索引路径:(nsindepath*)indepath

如何在代码中定义它?当我使用IBOutlet时,它可能会导致错误

那么我怎样才能像这样访问标签呢

cell.textable.text


非常感谢。

一个常见的解决方案是在情节提要中为每个标签指定一个标记,然后使用
viewWithTag:
在代码中查找标签,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = blah blah blah ...
    ...
    UILabel *myLabel = [cell viewWithTag:1];
    UILabel *anotherLabel = [cell viewWithTag:2];
    // etc.
}
CustonmCell* cell = [tableView dequeueReusableCellWithIdentifier:@"customCell"];
cell.customLabel = //whatever
//or
UILabel* mylabel = cell.customLabel;

对于故事板中的自定义单元格,请使用cellWillDisplay方法而不是cellForRow来访问单元格变量

第一步。创建自定义MyTableViewCell:UITableViewCell类。将IBOutlet变量放入此类中

第二步。在Xcode IB上,选择单元格,将其类更改为MyTableViewCell。然后连接IBO出口

第三步。在cellWillDisplayAtIndexPath中,像往常一样访问IBOutlet变量cell.myTextLabel


编辑:更正,如果您使用的是动态原型,那么cellForRowAtIndexPath将起作用。如果您使用的是静态单元格,则使用cellWillDisplayAtIndexPath。如果您使用的是静态单元格,则上述步骤不适用,因为您将在UITableView的视图控制器上定义IBOutlet。很抱歉给您带来混淆。

我想将UITableViewCell子类化。在子类中创建IBOutlets,然后您可以以常规方式访问它们,并在interface builder中设置它们。只需确保将原型单元设置为该类。然后插座就会显示出来,你可以用你想要的点语法访问它们

例如:

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

@end
实现也同样简单

#import CustomCell.h
@implementation CustomCell

@synthesize customLabel;

@end
就这么简单,, 然后在您的方法中,您将执行以下操作:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = blah blah blah ...
    ...
    UILabel *myLabel = [cell viewWithTag:1];
    UILabel *anotherLabel = [cell viewWithTag:2];
    // etc.
}
CustonmCell* cell = [tableView dequeueReusableCellWithIdentifier:@"customCell"];
cell.customLabel = //whatever
//or
UILabel* mylabel = cell.customLabel;

您可以添加任意数量的插座,并以类似的方式访问它们。

只需对答案进行编辑即可。我花了一些时间,因为它在xcode 4中出现了一个错误。将其更改为:
UILabel*myLabel=(UILabel*)[cell.contentView视图带标记:1]

在我把标签放在我的单元格上之后,我就可以填充它了。我需要从我的方法调用该标签。这里使用的方法是从您自己的代码中对标签进行编码。是吗?我不明白你的问题。如果您询问我是否在代码中创建了UILabel,则答案是否定的。我在XIB中创建了UILabel,并在XIB中设置了它的标记。故事板-->视图控制器-->添加表视图-->选择单元格-->将标签和按钮添加到单元格,然后我可以填充它。我需要访问我从代码中添加到自定义单元格的标签和按钮。你现在清楚了吗?他们不再有叫做cellWillDisplay的方法了?我是否有可能拖放到cell或tableview或任何东西的连接。?请在Apple doc中搜索准确的cellWillDisplayAtIndexPath方法签名。你错了@rob may off是对的。现在有一种方法叫做cellwillDisplay?无论如何,谢谢你的帮助,我更喜欢这个答案。在我看来,使用插座访问比引用标签更明显。