Triển khai phương thức ủy quyền UITableView này. Bất cứ khi nào một hàng tế bào tạo ra nó gán chiều cao cho mỗi tế bào
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 60.0f;
}
và triển khai mã này trong phương pháp viewDidLoad
[yourTableView setFrame:CGRectMake(yourTableView.frame.origin.x, yourTableView.frame.origin.y, yourTableView.frame.size.width,(60.0f*([yourArray count])))];
Lưu ý: - yourArray là một NSArray có chứa dữ liệu mà có bao nhiêu hàng bạn muốn để thùng.
HOẶC
Nếu yourArray tìm nạp giá trị động sau đó gọi phương thức này sau khi tìm nạp giá trị.
-(void)setHeightOfTableView
{
/**** set frame size of tableview according to number of cells ****/
float height=60.0f*[yourArray count];
[yourTableView setFrame:CGRectMake(yourTableView.frame.origin.x, yourTableView.frame.origin.y, yourTableView.frame.size.width,(60.0f*([yourArray count])))];
}
Tôi hy vọng nó hoạt động. Cảm ơn
Cảm ơn bạn đã dành thời gian để giải quyết vấn đề. Tôi đã tiêm mã (thích hợp cho trường hợp của tôi) trong phương thức viewDidLoad của tôi, nhưng nó không thay đổi kích thước của UITableView. –
Tôi đã thêm một ví dụ khác cho bạn, hy vọng điều đó sẽ hữu ích. –
tốt, việc tìm số ô không phải là vấn đề và tính chiều cao cũng không phải là. Đó là một thực tế là chiều cao của khung tableView không thay đổi (có phải điều này có thể vì mã của tôi sống trong ViewDidLoad? –