本文介绍了带有 viewWithTag 的 UILabel -(文本未出现)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有一个 UITableViewCell,我在上面添加了一个标签为 1000 的标签.

have a UITableViewCell, to which I add a label on it with tag 1000.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChecklistItem"];

    UILabel *label = (UILabel *) [cell viewWithTag:1000];

if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

然后

 UILabel *labelName = (UILabel *)[cell viewWithTag:1000]
 labelName.text = @"test".

当我运行时,单元格是空的.有什么建议吗?

When I run, the cell is empty. Any advice?

推荐答案

你应该检查 [tableView dequeueReusableCellWithIdentifier:@"ChecklistItem"][cell viewWithTag:5000] 返回 nil 以外的其他内容.

You should check if [tableView dequeueReusableCellWithIdentifier:@"ChecklistItem"] and [cell viewWithTag:5000] are returning something other than nil.

如果是,请务必按以下顺序进行:

If they are, be sure to do it in this order:

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

    //Try to reuse the cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChecklistItem"];

    //If you can't reuse, instantiate the cell
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ChecklistItem"];
    }

    //Now that you have your cell, find the label
    UILabel *labelName = (UILabel *)[cell viewWithTag:5000];

    //Check if the label exists just in case
    if (labelName) {
        //And set the text
        [labelName setText:@"test"];
    }
}

这篇关于带有 viewWithTag 的 UILabel -(文本未出现)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 09:53