Làm các tế bào của UITableView
chương trình trên không gian trống khi bạn cuộn xuống?
Nếu vậy, vấn đề có thể là phần bổ sung được thêm vào UITableView
vì bộ điều khiển Điều hướng bạn có trong chế độ xem của mình. Hình nhỏ được thêm vào chế độ xem bảng để nội dung được đặt bên dưới thanh điều hướng khi không xảy ra cuộn. Khi bảng được cuộn, nội dung sẽ cuộn và hiển thị dưới một thanh điều hướng trong suốt. Hành vi này tất nhiên chỉ muốn nếu chế độ xem bảng bắt đầu ngay dưới thanh điều hướng, đây không phải là trường hợp ở đây.
Một điều cần lưu ý là iOS chỉ điều chỉnh phần nội dung cho chế độ xem đầu tiên trong cấu trúc phân cấp chế độ xem nếu nó là UIScrollView
hoặc là hậu duệ (ví dụ UITableView
và UICollectionView
). Nếu hệ thống phân cấp chế độ xem của bạn bao gồm nhiều chế độ xem cuộn, automaticallyAdjustsScrollViewInsets
sẽ chỉ điều chỉnh cho chế độ xem đầu tiên.
Đây là cách thay đổi hành vi này:
a) Trình tạo giao diện
- Chọn bộ điều khiển xem
- Thanh tra thuộc tính mở
Có một thuộc tính được gọi là "Điều chỉnh phần tử xem cuộn" trong trình kiểm tra thuộc tính của IB (khi bộ điều khiển chế độ xem được chọn) được bật theo mặc định. Bỏ chọn tùy chọn này:
(Hình ảnh lịch sự của Dheeraj D )
Tôi không chắc phiên bản Xcode nào đã giới thiệu tùy chọn này (không phát hiện ra trong ghi chú phát hành), nhưng ít nhất nó có sẵn trong phiên bản 5.1.1.
Chỉnh sửa: Để tránh nhầm lẫn, đây là tùy chọn thứ ba được đề cập trong các nhận xét
b) Lập trình
Thêm phần này vào tức là viewDidLoad
(ghi có vào câu trả lời của Slavco Petkovski và bình luận của Cris R )
// Objective-C
self.automaticallyAdjustsScrollViewInsets = NO;
// Swift
self.automaticallyAdjustsScrollViewInsets = false
c) Điều này có thể phù hợp với học sinh cũ
Bạn có thể khắc phục điều này bằng cách thêm
tableView.contentInset = UIEdgeInsetsZero
//Swift 3 Change
tableView.contentInset = UIEdgeInsets.zero
Hoặc nếu bạn đang sử dụng IB và nếu thanh điều hướng không trong suốt (không thể nói từ ảnh chụp màn hình)
- Chọn bộ điều khiển xem
- Thanh tra thuộc tính mở
- Trong tùy chọn Trình điều khiển xem Mở rộng phần Edges bỏ chọn "Dưới thanh trên cùng"