Tôi có UITableView với các ô có chứa UILabels có chiều cao thay đổi. Tôi có thể tính chiều cao tối thiểu mà nhãn cần phải sử dụng sizeWithFont:constrainedToSize:lineBreakMode:
, hoạt động tốt khi lần xem bảng được tải lần đầu tiên. Khi tôi xoay chế độ xem bảng, các ô trở nên rộng hơn (nghĩa là có ít dòng hơn được yêu cầu để hiển thị nội dung). Có cách nào tôi có thể có chiều cao của các tế bào được xác định lại bởi UITableView trong hoạt ảnh thay đổi định hướng hay ngay trước hoặc sau? Cảm ơn bạn.Thay đổi Chiều cao UITableViewCell về Thay đổi Định hướng
Trả lời
UITableViewController của bạn có thể triển khai phương pháp tableView:heightForRowAtIndexPath:
để xác định chiều cao hàng cho một hàng cụ thể và có thể xem hướng hiện tại ([[UIDevice currentDevice] orientation]
) để quyết định chiều cao cần trả về.
Để đảm bảo tableView:heightForRowAtIndexPath:
được gọi một lần nữa khi những thay đổi định hướng, có thể bạn sẽ cần phải phát hiện sự thay đổi định hướng như mô tả trong this question, và gọi [tableView reloadData]
.
Vâng, đây là những gì tôi muốn làm. –
Tôi hiện đang có 'tableView: heightForRowAtIndexPath:' được triển khai, tôi không thấy nó được gọi trên thay đổi hướng nhưng nó được gọi là 'reloadData' và tôi có thể phát hiện sự thay đổi định hướng. Nếu có thể tôi muốn có độ cao animate khi chế độ xem quay, nhưng tôi không thấy đó là khả năng. –
Theo câu hỏi này: http://stackoverflow.com/questions/460014/can-you-animate-a-height-change-on-a-uitableviewcell-when-selected bạn có thể thực hiện hoạt ảnh bằng cách sử dụng ' beginUpdates'/'endUpdates' thay vì' reloadData' –
Để cải thiện một chút về câu trả lời trên từ @ David và để trả lời bình luận cuối cùng về làm thế nào để animate nó trơn tru trong một luân chuyển, sử dụng phương pháp này:
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
và tất nhiên các phương pháp chiều cao đại biểu:
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
return 171.0f;
} else {
return 128.0f;
}
}
Cảm ơn! Tôi đã phát điên! Bất kỳ ý tưởng tại sao statusBarOrientation hoạt động và định hướng một mình không khi bạn lần đầu tiên khởi tạo ứng dụng? Khi chạy, và hướng thay đổi, cả hai đều hoạt động tốt. – Jan
Định hướng UIDevice và định hướng UIInterface (từ thanh trạng thái) không giống nhau. UIDevice có thể ở trong UIDeviceOrientationFaceUp (tức là iPad của bạn đang ngồi trên bàn) - không cho bạn biết định hướng của giao diện là gì, có thể là gì trong số 4. – bandejapaisa
- 1. Thay đổi Chiều cao của một UITableViewCell
- 2. Thay đổi chiều cao UITableviewCell tự động trong iPhone?
- 3. Chiều cao thay đổi iOS của uitableview
- 4. Android - chiều cao nút không thay đổi
- 5. Thay đổi chiều cao hàng uitableviewcell cụ thể trong khi cuộn uitableview
- 6. jQuery - Phát hiện thay đổi chiều rộng cửa sổ nhưng không thay đổi chiều cao
- 7. UISegmentedControl - thay đổi chiều cao trong Bộ dựng giao diện
- 8. Thay đổi vị trí loại phụ kiện UITableViewCell với chiều cao ô
- 9. Chiều rộng và chiều cao có thay đổi theo hướng không?
- 10. Kích thước, Chỉ thay đổi chiều rộng/chiều cao
- 11. FragmentPagerAdapter không tạo lại Fragments về thay đổi định hướng?
- 12. Làm thế nào để thay đổi chiều cao băng động?
- 13. ActionBar công suất/tràn không thay đổi về biến đổi định hướng
- 14. Làm thế nào để thay đổi chiều cao div trên cửa sổ thay đổi kích cỡ?
- 15. Animate thay đổi chiều cao của div khi nội dung của nó thay đổi
- 16. Chiều cao jQuery() không thay đổi kích thước
- 17. Thay đổi chiều cao nút ttk bằng Python
- 18. C++ OpenSceneGraph Thay đổi máy ảnh Chiều cao mắt
- 19. Datatables: Thay đổi chiều cao của bảng không hoạt động
- 20. jQuery tự động thay đổi chiều cao phần tử
- 21. Chiều rộng cố định, chiều cao thay đổi trong JPanel với luồng
- 22. không thể thay đổi màu nền UITableViewCell
- 23. Phông chữ UITableViewCell Không thay đổi
- 24. Cách thay đổi chiều cao của Lưới Kendo ui
- 25. C# Thay đổi ListView Chiều cao của Item/Row
- 26. Thay đổi chiều cao của bảngHeaderView ẩn các ô
- 27. Thông báo thay đổi chiều cao bàn phím iPad
- 28. Animate thay đổi chiều cao trên Bootstrap's Carousel (v2.3.2)
- 29. Thay đổi chiều cao thanh tác vụ trên Android JellyBean
- 30. Thay đổi chiều cao tùy chọn thả xuống - CSS, Javascript
Làm thế nào để bạn có được kích thước (chiều rộng) được sử dụng cho sizeWithFont: constrainedToSize: lineBreakMode:? Tôi đang cố gắng tạo ra một ô có chiều cao thay đổi để làm việc cho phong cách tableview đơn giản và theo nhóm, nhưng không thể tìm ra cách để có được chiều rộng của tableview được nhóm theo số – flagg19