Tôi có một vài bảng (kiểu được nhóm) trong ứng dụng iphone của mình (chỉ trên một phần của màn hình và được thêm vào Interface Builder
, không được phân lớp từ UITableViewController
) rằng 80% thời gian là nhỏ và sẽ vừa với màn hình. Khi bảng vừa với màn hình, tôi muốn tắt tính năng cuộn, để làm cho nó sạch hơn một chút. Nhưng nếu bảng tắt màn hình (khi các hàng được thêm vào sau đó), tôi muốn bật lại cuộn (vì nếu không bạn không thể thấy nội dung đó.)
Có cách nào để làm việc này không? Tôi dường như không thể tìm ra nó. Tôi biết phải làm:
tableView.scrollEnabled = NO;
nhưng tôi không chắc chắn ở đâu, hoặc nếu tôi phải tính toán kích thước đối tượng bảng hoặc thứ gì đó để làm việc này.
Cập nhật : Đây là giải pháp cuối cùng có hiệu quả với tôi:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
Tôi chạy mã này sau khi gọi reloadData
trên bàn, và nó tính toán kích thước phù hợp và có vẻ hoạt động.
table.frame.size.height
là kích thước thực tế của đối tượng (bạn có thể thấy điều này Interface Builder
) được hiển thị trên màn hình, trong khi đó table.contentSize.height
là chiều cao của: tiêu đề, chân trang và chiều cao của mỗi ô được thêm vào với nhau.