ATTableView – Đơn giản hoá việc sử dụng UITableView trong lập trình iOS

ATTableView

Nếu từng sử dụng qua UITableView khi phát triển ứng dụng trên iOS. Bạn sẽ thấy nó rất rườm rà: phải lập đi lập lại việc hiện thực các phương thức của UITableViewDatasource và UITableViewDelegate, cũng như khá là khó khăn trong việc xử lý nhiều loại UITableViewCells trong cùng một TableView.

ATTableView là một thư viện được phát triển với mục đích giải quyết những rắc rối của UITableView.

A lazy way for smart developers to deal with UITableView.

Cách truyền thống sử dụng UITableView

UITableView's way

Khi sử dụng UITableView, ViewController của bạn phải làm rất nhiều việc:

  • Implement rất nhiều phương thức để sử dụng UITableViewDatasource và UITableViewDelegate.
  • Sử dụng điều kiện if... else... nếu bạn có nhiều hơn 1 loại cell cần hiển thị.
  • Quản lý models.
  • Khó sử dụng lại các UITableView.

Giải pháp của ATTableView

ATTableView's way

Bây giờ thì:

  • Bạn không cần phải hiện thực các phương thức của UITableViewDatasource và UITableViewDelegate trong ViewController nữa. Hầu hết nên được hiện thực trong cell.
  • Sử dụng lại cell cực kì đơn giản.
  • Models được quản lý bởi ATTableView.
  • Dễ dàng hiển thị nhiều loại cell, dựa vào model type. Chỉ cần vài thiết lập, cứ đẩy thẳng models cho ATTableView, khi đó các cell sẽ tự động kiểm tra models và hiển thị chúng.
  • Hỗ trợ Protocol Associated Type. Nhờ thế không cần phải dùng type cast.

ATTableViewCellProtocol – Chìa khoá để sử dụng ATTableView

ATTableView yêu cầu cell của bạn phải hiện thực giao thức này.

  • Không cần phải hiện thực tất cả, vài phương thức đã có sẵn.
  • Không cần dùng type cast. Định nghĩa kiểu model mà bạn muốn cell hiển thị thông qua ModelType alias.

Cách sử dụng ATTableView

1. Đầu tiên là tạo model

Ví dụ mình có 2 models sau:

2. Sau đó là xây dựng UITableViewCell

Cell của bạn cần phải hiện thực ATTableViewCellProtocol. ATTableViewCellProtocol có 1 Associated Type là ModelType, dùng để định nghĩa kiểu model mà bạn muốn cell hiển thị.

Các cell sẽ tự động kiểm tra model type, nếu giống với ModelType được định nghĩa thì sẽ hiển thị chúng, ngược lại sẽ bị bỏ qua.

Chú ý: Mặc định, CellIndentifier cùng tên với ClassName. Nếu bạn sử dụng XIB để bố trí cell, bạn phải thiết lập CellIndentifier giống ClassName.

RestaurantTableViewCell

RestaurantTableViewCell sẽ chỉ nhận Restaurant model. Những model khác sẽ bị bỏ qua.

HotelTableViewCell

HotelTableViewCell sẽ chỉ nhận Hotel model. Những model khác sẽ bị bỏ qua.

3. Cuối cùng là hiển thị models

Trong ViewController:

i) Register các cell:

ii) Push models:

iii) Enjoy it!

Ví dụ mẫu

Bạn có thể xem ví dụ mẫu trong thư mục Demo của repo.

Xem thử cách hoạt động

 

Thông tin chi tiết về ATTableView, bạn có thể xem trên GitHub. Nếu có vấn đề hay thắc mắc, bạn có thể tạo issue trên GitHub hoặc comment trực tiếp bên dưới.

SSS Full-stack Engineer

Love Silicon Straits and want to know more about our company culture, working environment or job vacancies?
Find out more at careers.siliconstraits.vn.

Silicon Straits
Be Challenged. Be Inspired. Be Different.




Posted by

on February 20, 2016

in , , ,

Comments

Follow us for more later

or subscribe with