使用自定义UITableViewCell混淆语法

时间:2012-04-13 20:06:30

标签: objective-c uitableview

我找到了自定义UITableViewCell的代码:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) 
{
    NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"MyCustomCell" owner:nil options:nil];

    MyCustomCell *customCell = [[MyCustomCell alloc]init];

    MyCustomCell.cellImage = [arrayImages objectAtIndex:indexPath.row];

    for (UIView *view in views) 
    {
        if([view isKindOfClass:[UITableViewCell class]])
        {                
            cell = (MyCustomCell *)view;

        }
    }
}

我无法确定这个特定部分的工作原理:cell = (MyCustomCell *)view;

我想为之前创建的MyCustomCell(customCell)实例更改它...我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

有时人们会使用Interface Builder创建自定义UITableViewCell。这个人只是加载他们的自定义UITableViewCell子类并将其分配给单元格。行cell = (MyCustomCell *)view;推测可行,因为MyCustomCellUITableViewCell的子类。

这只是创建自定义单元格的另一种技术,有时您会看到与标记类似的事情。

答案 1 :(得分:0)

首先,它迭代UIView个或UIView个子类的集合。它将每个迭代的变量存储到一个名为view的指针中。

然后只需将当前view变量转换为MyCustomCell类型。大概MyCustomCell延长UIView,所以这是合法的。

如果您想使用特定于MyCustomCell的方法,这很有用,因为如果您没有明确Type Cast您的对象,Xcode将不知道它们是否存在。