Hôm qua, trong lúc làm UI của App Dental thì mình gặp một trường hợp khá thú vị.
Ở đây, Ly Nguyễn có thiết kế 1 layout table view dạng từ Bottom to Top.
Research khá nhiều bài trên StrackOverflow thì đa số quy về 2 cách giải quyết:
1 - Xoay TableView upsidedown và xoay ngược lại các cell bên trong của nó.
Nhược điểm: Scroll view indicator bị xoay theo về bên trái, phải revert datasource.
Xoay lại các cell 1 lần nữa.
Swipe to delete bị sai.
2 - Tính total height của tất cả các cell + header + footer rồi đẩy xuống bằng cách set UIEdgeinsetTop.
Nhược điểm: nặng + khó làm với Autolayout.
Tìm ra giải pháp khác:
UILabel khi set multiple + autolayout thì nó tự tính được content size dựa trên Font size + số kí tự..
Có thể áp dụng giải pháp tương tự
-> Table cần tính intrinsic layout dựa trên content size
`class IntrinsicTableView: UITableView {
Hôm qua, trong lúc làm UI của App Dental thì mình gặp một trường hợp khá thú vị. Ở đây, Ly Nguyễn có thiết kế 1 layout table view dạng từ Bottom to Top.
Research khá nhiều bài trên StrackOverflow thì đa số quy về 2 cách giải quyết: 1 - Xoay TableView upsidedown và xoay ngược lại các cell bên trong của nó. Nhược điểm: Scroll view indicator bị xoay theo về bên trái, phải revert datasource. Xoay lại các cell 1 lần nữa. Swipe to delete bị sai. 2 - Tính total height của tất cả các cell + header + footer rồi đẩy xuống bằng cách set UIEdgeinsetTop. Nhược điểm: nặng + khó làm với Autolayout.
Tìm ra giải pháp khác: UILabel khi set multiple + autolayout thì nó tự tính được content size dựa trên Font size + số kí tự.. Có thể áp dụng giải pháp tương tự -> Table cần tính intrinsic layout dựa trên content size `class IntrinsicTableView: UITableView {
}` -> Set Layout cho left right bottom. -> Set Top layout >= 0 để view có thể co dãn từ top về bottom và không cao hơn parent view
view.addSubview(tableView) tableView.snp.makeConstraints { (m) in m.left.bottom.right.equalToSuperview() m.top.greaterThanOrEqualToSuperview() }
Kết quả, loại bỏ được việc tính chiều cao Headers, Footers, Cells, keep Swipe to do something..
Mở rộng ra, chưa thử nhưng có thể nhúng tableview vào tableview cell.