Khi cần custom layout với các thuộc tính như border width
, border color
, corner radius , hoặc 1 cusom atrribute nào đó
1 cách trực tiếp trên giao diện thì ta dùng 2 cái trên.
1. IBInspectable
Các thuộc tính IBInspectable
cung cấp khả năng truy cập mới vào một tính năng cũ: Hiện tại có thể truy cập được từ thanh Attributes, các thuộc tính này đã có sẵn từ trước khi Interface Builder được tích hợp vào Xcode của mỗi đối tượng trong một NIB, XIB hoặc Storyboard:

Mặc dù các thuộc tính trong runtime attributes có thể thực hiện việc thay đổi 1 cách nhanh chóng. Nhưng với keypath, type, value và không có bất kỳ gợi ý nào cho nó nên sẽ gây khó khăn cho chúng ta. Với IBInspectable mọi việc trở nên đơn giản hơn rất nhiều. Bây giờ bạn có thể chỉ định bất kỳ thuộc tính như inspectable và Xcode sẽ lo việc còn lại.
Mình thường dùng IBInspectable trong Extention, khi đó chúng ta sẽ dễ dàng chỉnh sửa các thuộc tính trên Interface Builder’s:

Còn đây là Extention của mình:
2. IBDesignable
Với IBDesignable mọi thứ sẽ còn tuyệt vời hơn, các bạn sẽ thấy được UIView thay đổi mỗi khi các bạn thay đổi các thuốc tính mà không cần phải chạy lại.
Các bạn chỉ cần thêm @IBDesignable trước một CustomClase kế thừa từ UIView là có thể sử dụng được:
@IBDesignable
class MyCustomView: UIView {
...
}
Và đây là thành quả, vừa edit vừa xem không cần phải chạy lại:

Với việc sử dụng kết hợp IBDesignable and IBInspectable giúp chúng ta tiết kiệm thời gian xây dựng UI rất là nhiều.
Cám ơn các bạn đã theo dõi bài viết :D.