borderColor trên bất kỳ view (hoặc UIView Subclass) cũng có thể được thiết lập 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 đang thiết lập màu đường viền trên nhiều đối tượng giao diện người dùng.
Dưới đây là các bước làm thế nào để đạt được điều đó,
- Tạo một thể loại trên lớp CALayer. Khai báo thuộc tính loại UIColor với tên phù hợp, tôi sẽ đặt tên là borderUIColor.
- Viết setter và getter cho thuộc tính này.
- Trong phương pháp 'Setter' chỉ cần đặt thuộc tính "borderColor" của lớp thành màu mới giá trị CGColor.
- Trong phương thức 'Getter' trả về UIColor với borderColor của lớp.
P.S: Hãy nhớ rằng, Danh mục không thể lưu trữ các thuộc tính. 'borderUIColor' được sử dụng làm thuộc tính được tính toán, cũng giống như tham chiếu để đạt được những gì chúng tôi đang tập trung vào.
Vui lòng xem mẫu mã bên dưới;
C Mục tiêu:
Giao diện File:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;
@end
Thực hiện File:
#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 chuyển đến bảng phân cảnh/XIB của bạn, hãy làm theo các bước còn lại;
- Nhấp vào đối tượng Chế độ xem mà bạn muốn đặt Màu đường viền.
- Nhấp vào "Trình kiểm tra nhận dạng" (thứ 3 từ trái) trong bảng "Tiện ích" (Phía bên phải của 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 số bạn đã khai báo trong danh mục, không phải borderColor tại đây là borderUIColor].
- Cuối cùng chọn bất kỳ màu nào bạn muốn.
Bạn phải đặt lớp.borderWidth giá trị thuộc tính ít nhất là 1 để xem màu đường viền.
Xây dựng và chạy. Mã hóa hạnh phúc. :)
Nguồn
2015-12-14 19:56:50
Đó là #import thay vì QuartCore (bạn quên z) –
cldrr
Trong iOS 7, bạn phải đặt chiều rộng đường viền hoặc màu không có hiệu lực. – Micah
Là người mới bắt đầu, điều này không có ý nghĩa với tôi. Nếu tôi bắt đầu một ứng dụng trống, trống, hãy chuyển đến bảng phân cảnh và thêm trường TextView. Tôi nhập thạch anh ở đâu? Tôi có thể thêm thông tin biên giới ở trên ở đâu? "TextField" là gì và làm cách nào để biết trường văn bản nào tôi đang nói đến? –