我在故事板上的自定义单元格有问题。我需要从所谓Xcode 4.2 UITableview自定义单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我怎么能在我的代码定义它的方法来访问标签?当我使用IBOutlet时,可能会导致错误。
所以,我怎么能访问诸如
cell.textlable.text标签?
非常感谢。
我在故事板上的自定义单元格有问题。我需要从所谓Xcode 4.2 UITableview自定义单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我怎么能在我的代码定义它的方法来访问标签?当我使用IBOutlet时,可能会导致错误。
所以,我怎么能访问诸如
cell.textlable.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.
}
将标签放在我的细胞后,我可以填充它。我需要从我的方法中调用该标签。您在这里使用的方式是从您自己的代码中编码标签。是吗 ? –
我不明白你的问题。如果您问是否在代码中创建了UILabel,则不会。我在XIB中创建了它,并在XIB中设置了它的标签。 –
对于故事板自定义单元格,使用cellWillDisplay方法而不是cellForRow来访问单元格变量。
第1步。创建一个自定义MyTableViewCell:UITableViewCell类。将IBOutlet变量放在这个类中。
第2步。在Xcode IB上,选择单元格,将其类更改为MyTableViewCell。然后链接IBOutlets。
第3步。在cellWillDisplayAtIndexPath中,照常访问IBOutlet变量cell.myTextLabel。
编辑:更正,如果您使用动态原型,然后cellForRowAtIndexPath将工作。如果您使用的是静态单元格,请使用cellWillDisplayAtIndexPath。如果您使用的是静态单元格,则上述步骤不适用,因为您将在UITableView的视图控制器中定义您的IBOutlets。对困惑感到抱歉。
他们是没有更多的方法称为cellWillDisplay? 我是否有可能将连接拖放到单元格或tableview或其他任何东西? –
请为Apple文档搜索确切的cellWillDisplayAtIndexPath方法签名。 – jemeshsu
你错了@rob可能关是对的。现在有一种叫做cellwillDisplay的方法吗? 反正谢谢你的帮助 –
我会继承UITableViewCell。在子类内部创建IBOutlets,然后可以通过常规方式访问它们并在接口构建器中进行设置。只要确保将原型单元设置为该类。那么网点将显示出来,你可以像你想要的那样用点语法访问它们。
一个例子是:
@interface CustomCell : UITableViewCell
{
}
@property (nonatomic, retain) IBOutlet UILabel* customLabel;
@end
和实现也很简单
#import CustomCell.h
@implementation CustomCell
@synthesize customLabel;
@end
就是这么简单, 然后在你的方法,你会做这样的事情:
CustonmCell* cell = [tableView dequeueReusableCellWithIdentifier:@"customCell"];
cell.customLabel = //whatever
//or
UILabel* mylabel = cell.customLabel;
您可以根据需要添加尽可能多的网点,并在si中访问它们类似的方式。
我更喜欢这个答案。在我看来,访问网点比参考标记更为明显。 –
只是编辑Robs的答案。花了我一会儿,因为它在xcode 4中出现了一个错误。将其更改为: UILabel * myLabel =(UILabel *)[cell.contentView viewWithTag:1];
故事板 - >视图控制器--->添加表视图 - >选择单元格 - >添加标签和按钮到单元格然后我可以填充它。 我需要访问那些从我的代码中添加到自定义单元格中的标签和按钮。 你现在清楚吗? –