iPhone Device 3.1 SDK中断UITableViewCellStyleValue1 textLabel的垂直对齐方式

时间:2009-09-10 22:43:04

标签: iphone uitableview

任何人都可以解释以下现象吗?

从iPhone Device 3.1 SDK开始,我发现如果UITableViewCell的格式为UITableViewCellStyleValue1且其detailTextLabel.text未分配,则textLabel不会按照预期显示在单元格的中心。

一个值得注意的警告是,只有当我在设备上进行测试时才会发生这种情况 - iPhone 模拟器 3.1 SDK会正确显示单元格。此外,使用iPhone Device 3.0 SDK时也不会出现问题。

下面是一个简单的UITableViewController子类实现,用于演示此问题。

@implementation BuggyTableViewController

#pragma mark Table view methods


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 3;
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
    }

    switch (indexPath.row) {
  case 0:
   cell.textLabel.text = @"detailTextLabel.text unassigned";
   break;
  case 1:
   cell.textLabel.text = @"detailTextLabel.text = @\"\"";
   cell.detailTextLabel.text = @"";
   break;
  case 2:
   cell.textLabel.text = @"detailTextLabel.text = @\"A\"";
   cell.detailTextLabel.text = @"A";
   break;
  default:
   break;
 }

    return cell;
}

@end

2 个答案:

答案 0 :(得分:4)

而不是

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];

尝试使用

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

答案 1 :(得分:0)

我也有同样的问题。单元格在模拟器中看起来很好但是当我在设备上运行应用程序时,单元格文本没有垂直居中。使用UITableViewCellStyleDefault解决了我的垂直对齐居中问题。幸运的是,我的手机没有副标题。