Tạo progressHUD đơn giản
Contents
Giới thiệu
ProgressHUD là thành phần không thể thiếu trong các app mobile, thường được sử dụng mỗi khi load data từ server. Mình hay dùng tool hỗ trợ, tỉ như thằng SVProgressHUD hay thằng MBProgressHUD. Tuy nhiên thi thoảng tự sướng chút cho nó yomost 😄. Ví dụ này mình sẽ viết bằng swift 3
Ý tưởng
Mình sẽ tạo 1 window với rootViewController có nhiệm vụ làm container cho thằng HUD. Thằng HUD chính là singleton để sử dụng chung cho toàn app. HUD sẽ có 2 hàm chính là show và hide để ẩn hiện.
Triển khai
Bước 1: tạo container, background của container sẽ màu đen và có độ alpha để nhìn thấy phía sau
|
|
Bước 2: tạo class singleton cho HUD
Vì nó là singleton nên ta cần tạo 1 instance share và tạo private init.
|
|
|
|
Mình dùng lại thư viện NVActivityIndicatorView vì nó có khá nhiều hiệu ứng đẹp. Để đưa indicator vào chính giữa màn hình, mình dùng autoresizingMask, đây là cách đơn giản nhất, cách khác nữa là add constraints, nhưng mình không đề cập ở đây.
Tiếp theo ta cần tạo phương thức ẩn, hiện
Đầu tiên là hiện
|
|
Như đã nói ở trên, mình tạo 1 window mới với rootViewcontroller làm nhiệm vụ chứa HUD. Ta dùng hàm makeKeyAndVisible() đưa nó lên top, vậy nên trước đấy ta cần lưu lại keyWin cũ để khi ẩn ta set lại keyWin default của app.
|
|
Cách dùng
Ta đơn giản chỉ cần call ở viewcontroller GGProgressHUD.show() / GGProgressHUD.hide()
Hình ảnh
Sau khi hoàn thành thì nó thế này
Đơn giản phải không nào. Source: GGProgressHUD
Author gg4acrossover
LastMod 2017-05-10