代码之家  ›  专栏  ›  技术社区  ›  Andrew Hershberger

iPhone设备3.1 SDK中断了uiTableViewCellStyleValue1文本标签的垂直对齐

  •  5
  • Andrew Hershberger  · 技术社区  · 15 年前

    有人能解释以下现象吗?

    从iPhone3.1sdk开始,我发现 UITableViewCell 有风格 UITableViewCellStyleValue1 及其 detailTextLabel.text 未分配,则 textLabel 不按预期显示在单元格的中心。

    一个值得注意的警告是,这只发生在我测试 装置 _“iPhone 模拟器 3.1 SDK正确显示单元。此外,在使用iPhone设备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 回复  |  直到 13 年前
        1
  •  4
  •   Mihir Mehta    14 年前

    而不是

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

    试用使用

    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    
        2
  •  0
  •   Iggy    14 年前

    我也有同样的问题。在模拟器中,手机看起来不错,但当我在设备上运行应用程序时,手机文本没有垂直居中。使用uiTableViewCellStyleDefault解决了我的垂直对齐居中问题。幸运的是,我的手机没有字幕。