BorderColor trên bất kỳ chế độ xem nào (hoặc Lớp con UIView) cũng có thể được đặt bằng cách sử dụng bảng phân cảnh với một chút mã hóa và cách tiếp cận này có thể thực sự tiện dụng nếu bạn đặt màu đường viền trên nhiều Đối tượng UI.
Dưới đây là các bước để đạt được nó,
- Tạo một thể loại trên lớp CALayer. Khai báo một thuộc tính loại UIColor với một tên phù hợp, tôi sẽ đặt tên nó là BorderUIColor .
- Viết setter và getter cho thuộc tính này.
- Trong phương thức 'Setter', chỉ cần đặt thuộc tính "BorderColor" của lớp thành giá trị CGColor màu mới.
- Trong phương thức 'Getter', trả về UIColor với đường viền của lớp.
PS: Hãy nhớ rằng, Thể loại không thể có các thuộc tính được lưu trữ. 'BorderUIColor' được sử dụng làm tài sản được tính toán, giống như một tài liệu tham khảo để đạt được những gì chúng tôi đang tập trung vào.
Xin vui lòng xem mẫu mã dưới đây;
Mục tiêu C:
Tệp giao diện:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;
@end
Tập tin thực hiện:
#import "CALayer+BorderProperties.h"
@implementation CALayer (BorderProperties)
- (void)setBorderUIColor:(UIColor *)color {
self.borderColor = color.CGColor;
}
- (UIColor *)borderUIColor {
return [UIColor colorWithCGColor:self.borderColor];
}
@end
Swift 2.0:
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.CGColor
}
get {
return UIColor(CGColor: self.borderColor!)
}
}
}
Và cuối cùng đi đến bảng phân cảnh của bạn / XIB, làm theo các bước còn lại;
- Nhấp vào đối tượng Xem mà bạn muốn đặt Màu viền.
- Nhấp vào "Thanh tra danh tính" (thứ 3 từ trái sang) trong bảng "Tiện ích" (Bên phải màn hình).
- Trong "Thuộc tính thời gian chạy do người dùng xác định", nhấp vào nút "+" để thêm đường dẫn chính.
- Đặt loại đường dẫn chính thành "Màu".
- Nhập giá trị cho đường dẫn chính là "layer.borderUIColor". [Hãy nhớ rằng đây phải là tên biến bạn đã khai báo trong danh mục, không phải BorderColor ở đây là BorderUIColor ].
- Cuối cùng chọn bất cứ màu nào bạn muốn.
Bạn đã đặt giá trị thuộc tính layer.borderWidth thành ít nhất 1 để xem màu đường viền.
Xây dựng và chạy. Chúc mừng mã hóa. :)