我确信这个问题不是唯一的,但我还没有找到其他资源来解决它。实际上,这些已经引起了更多的混乱。如果可以的话,请照亮。
问题的症结在于我想在带有自定义单元格的 7 节 30ish 行表的一个单元格中滑动(-50)一个 UILabel。滚动后,其他几行正在移动此标签,并且随着滚动的继续,它们继续移动得越来越远。
您会注意到负 50 x 坐标在 2 个位置进行测试。第一个,在单元格 == nil 中,永远不会被调用。为什么??我认为那是解决这个问题的地方。
即使单元格为零,也不确定如何调用 initWithStyle (不适用于自定义)或 initWithCoder (在情节提要中创建)。??
NSArray *a = [[userDetailData objectAtIndex:[indexPath section]] objectAtIndex:[indexPath row]];
NSString *key = [[[a objectAtIndex:0] allKeys] objectAtIndex:0];
NSString *value = [[a objectAtIndex:0] valueForKey:key];
static NSString *CellIdentifier = @"MasterCell";
UsersTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// If cell does not exist, create it, otherwise customize existing cell for this row
if (cell == nil) {
// Create cell
cell = [[UsersTableViewCell alloc] initWithCoder:<#(NSCoder *)#>reuseIdentifier:CellIdentifier];
// Configure cell:
NSLog(@"Key: %@ %d, %d", key, [indexPath section], [indexPath row]);
// Prepare the date field to move left for checkmark or ex-mark
if ([key isEqualToString:@"Date"]) {
CGRect frame = cell.comboLabel.frame;
frame.origin.x -= 50;
cell.comboLabel.frame = frame;
NSLog(@"In Date... minus 50");
}
}
// Customize cell:
CGRect frame = cell.comboLabel.frame;
if ([key isEqualToString:@"Date"]) {
frame.origin.x -= 50;
cell.comboLabel.frame = frame;
NSLog(@" %d, %d\n cell: %@\n", [indexPath section], [indexPath row], cell);
}
else {
frame.origin.x += 0;
cell.comboLabel.frame = frame;
}
// Reset color
cell.comboLabel.textColor = [UIColor blackColor];
// Set the Item
cell.nameLabel.text = [NSString stringWithFormat: @" %@",key];
// Give the cell an accessory indicator
..... continue on with logic.