Quản lý Font chữ trong Swift

Tram Ho

Mở đầu:

Trong phát triển ứng dụng, Font chữ đóng vai trò quan trọng trong việc thiết kế giao diện. Việc lựa chọn font chữ phù hợp với giao diện UI sẽ giúp cho ứng dụng của chúng ta bắt mắt hơn và tiện lợi hơn trong việc sử dụng.

Vấn đề:

Trong trường hợp dự án của bạn được giao cho khách hàng kiểm tra lần cuối trước khi được submit app lên Appstore. Cuối cùng app của bạn được khách hàng ok tuy nhiên chỉ cần chỉnh sửa nho nhỏ về font chữ hoặc size chữ cho to lên 1 size và bạn được giao task chỉnh sửa font chữ. Như thông thường bạn sẽ phải tìm từng UILabel hoặc UITextField trên từng StoryBoard trong dự án. Mọi việc sẽ rất dễ dàng nếu số màn hình ít nhưng tưởng tượng có đến hàng chục màn hình thì việc tìm sửa từng label là rất khó khăn. Để giải quyết task này một cách nhanh chóng chúng ta cần một biện pháp quản lý việc thay đổi font hoặc size chữ.

Phương pháp:

  • Bước 1:
    • Mang các font chữ bạn cần vào trong dự án. Kéo thả các font chữ vào trong resource của dự án.

  • Bước 2:
    • Đăng ký các font chữ của bạn vào trong file Info.plist dưới key là Fonts provided by application (UIAppFonts).

  • Bước 3:
    • Đảm bảo các font chữ bạn add vào project, bạn hãy kiểm tra font chữ đã được đăng ký hay chưa với function Utility.logAllAvailableFonts() .(Tất cả các font chữ có trong project sẽ được print ra ở debug console).

Cách sử dụng:

  • Thông thường chúng ta đăng ký font chữ cũng như size chữ bằng cách khởi tạo sau UIFont(name:size:).Chúng ta cần tránh hard code như vậy để dễ dàng trong việc thay đổi font chữ hay size chữ . Ta sẽ sử dụng 2 enum để làm việc này, một dùng để quán lý font chữ, một dùng để quản lý size chữ.

  • Enum FontName dùng để xử lý tất cả font ta đã thêm vào project. Enum StandardSize dùng để xử lý size chữ trong project.

  • Một số trường hợp ta sẽ cần dùng system font hoặc các size chữ lớn hơn hoặc nhỏ hơn nên ta sẽ thêm 2 Enum để xử lý việc đó.

  • Với enum FontType sẽ giúp ta dễ dàng tùy chọn sử dụng font mặc định hoặc font được thêm vào từ bên ngoài. Tương tự, Enum FontSize giúp ta tùy chọn được các phong chữ đã cài đặt sẵn ở Enum StandardSize hoặc dùng font chữ tùy chọn.

  • Bây giờ chúng ta sẽ đóng gói các enum phía trên lại trong struct Font. Việc này giúp ta dễ dàng tạo ra font chữ và size chữ dễ dàng.

  • Ta vẫn chưa thêm bất kỳ cơ chế nào để khởi tạo UIFont. Điều đó sẽ được thực hiện thông qua extension dưới đây.

Sử dụng:

  1. khởi tạo UIFont theo cách thông thường:

  1. Và đây là cách khởi tạo với syntax theo kiến trúc ta đã thực hiện phía trên, nhìn sẽ trực quan hơn và sẽ giúp ta dễ dàng hơn trong việc maintainance.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo