0

当我使用此代码时,但详细信息是步进器不起作用(可以在日志中看到)

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier=@"CellIDD";
Cell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
Data *item = [self.data objectAtIndex:indexPath.row];
if (cell == nil)
{
    cell = [[[Cell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.accessoryView = [self newStepper];
    if (NSStringFromClass([UIStepper class]))
        [(UIStepper *)cell.accessoryView setTag:indexPath.section * 100 + indexPath.row];
    else
        [(CustomStepper *)cell.accessoryView setTag:indexPath.section * 100 + indexPath.row];
}
if (NSStringFromClass([UIStepper class]))
{
    [(UIStepper *)cell.accessoryView setMinimumValue:0];
    [(UIStepper *)cell.accessoryView setMaximumValue:18];
    [(UIStepper *)cell.accessoryView setValue:[[_values objectAtIndex:indexPath.row] intValue]];
}
else
{
    [(CustomStepper *)cell.accessoryView setMinimumValue:0];
    [(CustomStepper *)cell.accessoryView setMaximumValue:18];
    [(CustomStepper *)cell.accessoryView setValue:[[_values objectAtIndex:indexPath.row] intValue]];
}
cell.cellTextLabel3.text = item.name;
cell.cellPriceLabel3.text = item.bounty;
cell.labelSnipper.text = [[_values objectAtIndex:indexPath.row] stringValue];
    NSLog(@"VALUE  %@",_values);
    return cell;} 

https://www.evernote.com/shard/s17/sh/49a47862-95e0-4266-90cd-0fc1b523107b/e208bba10a1cc1618dbdf4aef13264fe/deep/0/CellIDD.png

如果您使用此代码,则日志的标签不清楚表明步进器工作

NSString *cellID = [NSString stringWithFormat:@"CellID%d", indexPath.row]; 
Cell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
 Data *item = [self.data objectAtIndex:indexPath.row];
 if (cell == nil)
    {
        cell = [[[Cell3 alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.accessoryView = [self newStepper];
        if (NSStringFromClass([UIStepper class]))
            [(UIStepper *)cell.accessoryView setTag:indexPath.section * 100 + indexPath.row];
        else
            [(CustomStepper *)cell.accessoryView setTag:indexPath.section * 100 + indexPath.row];
    }
    if (NSStringFromClass([UIStepper class]))
    {
        [(UIStepper *)cell.accessoryView setMinimumValue:0];
        [(UIStepper *)cell.accessoryView setMaximumValue:18];
        [(UIStepper *)cell.accessoryView setValue:[[_values objectAtIndex:indexPath.row] intValue]];
    }
    else
    {
        [(CustomStepper *)cell.accessoryView setMinimumValue:0];
        [(CustomStepper *)cell.accessoryView setMaximumValue:18];
        [(CustomStepper *)cell.accessoryView setValue:[[_values objectAtIndex:indexPath.row] intValue]];
    }
    cell.cellTextLabel3.text = item.name;
    cell.cellPriceLabel3.text = item.bounty;
    cell.labelSnipper.text = [[_values objectAtIndex:indexPath.row] stringValue];
        NSLog(@"VALUE  %@",_values);
        return cell;
     }

https://www.evernote.com/shard/s17/sh/1601451a-af62-4c35-9d27-4f23252ad50a/4ea3c85e0c38372b105e72cbaa58d942/deep/0/CellID%20d.png

4

2 回答 2

0

如果我正确理解了这个问题,那么有一个问题是单元格根本不显示任何内容?

从“CellIDD”中删除“D”,从“CellID%d”中删除“%d”。在大多数情况下,您将在情节提要中设计一个原型单元并指定一个标识符(在您的情况下为“CellID”)。dequeueReusableCellWithIdentifier: 方法将为您获取一个“CellID”类型的单元格,并将其用于在表格中填充单元格。

除了...

if (NSStringFromClass([UIStepper class]))

...将始终解决为“是”。我想那里缺少某些东西,您想检查一下,单元格的附件视图是否属于 UIStepper 类型。

于 2013-08-07T06:43:24.483 回答
0

执行此操作的简单方法是在情节提要中设置单元格。将动态原型单元的大小更改为您想要的大小,然后拖入标签和步进器。单元格的类型应该设置为自定义,你应该创建一个 UITableViewCell 的子类。将单元的类更改为您的子类,并在单元类的 .h 文件中为您拖入的任何 UI 元素设置 IBOutlets。以通常的方式连接这些插座,您就可以开始了。

于 2013-08-07T14:21:49.103 回答