2011-08-27 29 views
14

Tôi đang sử dụng mã bên dưới để tạo giao diện lớn hơn và rõ ràng hơn trên UITableView đơn giản (không được nhóm). Nó hoạt động tốt trừ khi tôi có một cái bàn trống sau đó chiều cao của tế bào đặt ở độ cao bình thường. Tôi có các Separatorstyle tiêu chuẩn (các dòng màu xám) vì vậy nó trông rly xấu nếu nó có sản phẩm nào.Chiều cao ô UITableview không hoạt động trong một bảng trống?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    return 75; 
} 

Bất kỳ ý tưởng nào để khắc phục sự cố này?

EDIT:

Tìm thấy một giải pháp tốt hơn nơi mà tôi dont thậm chí hiển thị các dòng nếu bảng là "Empty" và hiển thị hướng dẫn văn bản thay thế.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if ([dataArray count] == 0) { 
     [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
     [pleaseAddStuffText setHidden:NO]; 
    } else { 
     [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine]; 
     [pleaseAddStuffText setHidden:YES]; 
    } 
    return [dataArray count]; 
} 
+1

Bởi "bảng trống", bạn có nghĩa là 'numberOfSectionsInTableView:' và/hoặc 'tableView: numberOfRowsInSection:' trả về 0? –

+0

Đúng đắn thưa ngài. – David

+1

thì 'tableView: heightForRowAtIndexPath:' sẽ không bao giờ được gọi, bạn có thể đặt điểm ngắt để kiểm tra. –

Trả lời

33

Bạn sẽ có thể buộc một chiều cao hàng bất cứ lúc nào bằng cách thiết lập rowHeight, thậm chí nếu số lượng hàng là 0.

self.tableView.rowHeight = 75.0; 

Bạn cũng có thể đặt nó trong IB.

heightForRowAtIndexPath dường như chỉ được gọi nếu ô được thiết lập trong cellForRowAtIndexPath, trong khi đây là thuộc tính của tableview và luôn xuất hiện.

+0

Siêu đơn giản, hoạt động hoàn hảo. –

+0

cũng hoạt động trên NSTableView cho những người tự hỏi. – Andrew

-1

Bạn muốn nói gì về bảng trống? Nếu bảng đầy đủ trống thì số phần được trả lại cho bảng trống. Điều đó có nghĩa là không có gì sẽ được hiển thị trên bàn cả.

Nếu bạn tuy nhiên có một dòng bảng trống = ô bảng, thì bạn nên đảm bảo rằng cell at indexpath trả lại nội dung nào đó mà bạn chỉ cần đặt giá trị trống. Sau đó, bạn sẽ có một dòng trống giữa các dòng khác của bạn trong bảng của bạn.

Chính xác là gì/nên để trống?

+0

Bảng trống = Không có dữ liệu/ô được hiển thị. Tôi nghĩ chiều cao giữa Separatorstyle. – David

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