2009-12-10 27 views
5

Tương tự như this previous question, tôi gặp sự cố với căn chỉnh văn bản trong các ô bảng của mình. Tất cả văn bản được dịch chuyển lên một vài pixel. Tôi không sử dụng các ô tùy chỉnh; Tôi đang sử dụng thường xuyên UITableViewCell s với kiểu dáng UITableViewCellStyleValue1, nhắm mục tiêu hệ điều hành iPhone 3.1. Tôi thích một giải pháp đơn giản hơn nhiều so với câu trả lời của câu hỏi trước, đặc biệt là vì tôi không sử dụng các ô tùy chỉnh. Tôi cũng muốn biết chính xác vấn đề là gì , vì phần đó của câu hỏi chưa bao giờ được giải quyết.Nhãn hiệu bảng iPhone không được chỉnh sửa

Đây là những gì nó trông giống như trên mô phỏng:

Simulator http://www.shaggyfrog.com/junk/table-cell-label-misalignment-simulator.png

Và trên thiết bị:

Device http://www.shaggyfrog.com/junk/table-cell-label-misalignment-device.png

Chỉnh sửa: một số mã khác theo yêu cầu. (Tôi đang xây dựng các tế bào bàn của tôi ngoài cellForRowAtIndexPath.)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return [cells objectAtIndex:[indexPath row]]; 
} 

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    [self loadCells]; 
    [table reloadData]; 

    [self.navigationController setNavigationBarHidden:NO animated:YES]; 
} 

- (void)loadCells 
{ 
    cells = [[NSArray alloc] initWithObjects:[self aCell], [self bCell], nil]; 
} 

- (UITableViewCell*)aCell 
{ 
    UITableViewCell* cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Foo"] autorelease]; 
    cell.textLabel.text = @"A"; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    return cell; 
} 

- (UITableViewCell*)bCell 
{ 
    UITableViewCell* cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Foo"] autorelease]; 
    cell.textLabel.text = @"B"; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    return cell; 
} 
+0

Chúng tôi có thể thấy mã 'cellForRowAtIndexPath' không? Tôi đã sử dụng 'UITableViewCellStyleValue1' mà không thấy vấn đề này trong quá khứ. –

+0

Chắc chắn, tôi có thể thêm nó, nhưng tôi không chắc nó hữu ích như thế nào. –

+0

Tôi chưa bao giờ thấy các tế bào được tạo ra như thế này trước đây ... chúng trông OK. Có lẽ cái gì khác trong mã mà bạn không hiển thị là thủ phạm? – bpapa

Trả lời

5

tôi biết mã của bạn nói rằng bạn đang sử dụng di động phong cách UITableViewCellStyleValue1, nhưng ảnh chụp màn hình thiết bị thực sự trông giống như UITableViewCellStyleSubtitle.

Bạn nên đặt giá trị cho cell.detailTextLabel.text để đảm bảo bạn đang nhận được kiểu di động dự kiến.

Trên ghi chú đó, nếu bạn không sử dụng thuộc tính detailTextLabel, có thể bạn nên sử dụng UITableViewCellStyleDefault.

+0

Rất tiếc - bạn đã đúng. Điều đó dường như đã sửa nó! Tôi đã có những dòng trong đó, nhưng nhận xét chúng ra, và sau đó vô tình loại bỏ những dòng bình luận ra khi tôi đã được ẩn danh mã để gửi bài ở đây. Trong mọi trường hợp, cảm ơn rất nhiều! Điều này chắc chắn là một lỗi với thuật toán bố cục. –

+0

Đã gửi báo cáo lỗi trong Radar # 7464950. –

+0

Lỗi bố cục là gì? Nếu bạn * đã * sử dụng kiểu phụ đề thì văn bản đã được đặt chính xác. – benzado

Các vấn đề liên quan