2017-09-15 32 views
8

Có ứng dụng đi kèm nhiều phần, một vài hàng cho mỗi phần khi "mở rộng", không có gì khi "thu gọn". Mỗi phần có một tiêu đề phần, đã sử dụng lại chúng bằng cách sử dụng một lớp con của UITableViewHeaderFooterView vv Cho đến nay rất tốt.Tiêu đề của bảng xếp hạng nổi bật iOS 11

Sau đó, trong iOS 11:

Screenshot describing the issue

Tôi đã sử dụng các trình gỡ lỗi trực quan, và khẳng định đó là tiêu đề phần của tôi nổi. Tất cả các hàng bên dưới tiêu đề đang hiển thị chính xác, các tiêu đề khác hiển thị tốt.

Trong nỗ lực khôi phục sự tỉnh táo, tôi đã ném ra tất cả logic tái sử dụng cho tiêu đề và chỉ làm cho chúng có lập trình. Giống nhau. Tất cả các công việc pre-iOS 11, vẫn trôi nổi trong iOS 11. Phần mà nổi dường như thay đổi mỗi lần, do đó, có điều đó.

Bất kỳ ý tưởng nào?

+0

Vấn đề có biến mất nếu bạn vô hiệu hóa logic hợp đồng mở rộng của mình không? –

Trả lời

0

Bạn đã thêm tiêu đề từ bảng phân cảnh, nếu có, vui lòng chia sẻ "tiêu đề của tableview trong storyboard" ảnh chụp màn hình
Ngoài ra bạn có tính chiều cao hàng không? tính toán như mong đợi?

+0

Tải chúng từ một XIB ban đầu, sau đó tạo chúng theo chương trình. Cả hai đều gây ra vấn đề. Đối với chiều cao, tôi có chiều cao ước tính và nó được tính toán thông qua các ràng buộc & 'UITableViewAutomaticDimension' – VDub19

1

Cố gắng thay đổi kiểu bảng từ đồng bằng thành nhóm.

+0

Thú vị. Điều này dường như đã sửa lỗi hình ảnh, nhưng để lại một số vấn đề khác (tất cả liên quan đến một tableView được nhóm lại - chiều cao chân trang, màu nền và hình ảnh động thay đổi chút ít). Bất kỳ ý tưởng những gì đang ảnh hưởng đến bảng tổng hợp đồng bằng? Trên bề mặt, điều này có vẻ như một sự thay đổi không cần thiết để tránh một vấn đề lớn hơn. – VDub19

35

Chỉ cần chạy vào một vấn đề tương tự và thấy the discussion on this issue mà làm việc cho tôi:

self.tableView.estimatedRowHeight = 0; 
self.tableView.estimatedSectionHeaderHeight = 0; 
self.tableView.estimatedSectionFooterHeight = 0; 

Có vẻ như hành vi mặc định của UITableView thay đổi trong iOS 11 để sử dụng chiều cao ước tính. Ghi chú phát hành cho iOS 11 beta 2 có nghĩa là:

Chế độ xem bảng giờ đây sử dụng chiều cao ước tính theo mặc định. Giá trị mặc định của thuộc tính EstimatedRowHeight, estimatedSectionHeaderHeight và EstimatedSectionFooterHeight giờ đây là UITableViewAutomaticDimension, có nghĩa là chế độ xem bảng chọn chiều cao ước tính để sử dụng. Bạn vẫn nên cung cấp ước tính chính xác hơn cho mỗi thuộc tính nếu có thể, đó là phỏng đoán tốt nhất của bạn về giá trị trung bình của các tầm cao thực tế. Nếu bạn có mã xem bảng hiện tại hoạt động khác khi bạn tạo ứng dụng của mình với SDK iOS 11 và bạn không muốn áp dụng tự định kích thước, bạn có thể khôi phục hành vi trước đó bằng cách tắt chiều cao ước tính bằng cách đặt giá trị bằng 0 mỗi thuộc tính chiều cao ước tính. (30197915)

cũng xem ghi chú phát hành beta 2 mirrored here.

+0

Không chắc chắn điều này liên quan đến chiều cao hàng, vì chiều cao xuất hiện chính xác (chỉ là hàng chính nó bị đặt sai chỗ). Thực hiện thay đổi được đề xuất chỉ bằng 0 của một loạt các hàng. – VDub19

+0

Đặt những thông tin này về không cố định vấn đề cho tôi, cảm ơn! – amleszk

+0

Không cần thiết lập chiều cao hàng ('self.tableView.estimatedRowHeight = 0;'), chỉ cần đặt 'estimatedSectionHeaderHeight' và' estimatedSectionFooterHeight' làm việc cho tôi. – Itachi

1

Tôi không biết tại sao trong trường hợp của tôi, @ahmedre câu trả lời là không làm việc ...

Vì vậy, câu trả lời của tôi có thể giúp bạn nếu bạn đặt tất cả các thuộc tính ước 0 cũng không làm việc:

func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat { 
    return 0.1 
} 

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 0.1 
} 
+0

Hoạt động! 0 Không hoạt động. – DaNLtR

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