borderColorในมุมมองใด ๆ (หรือ UIView Subclass) สามารถตั้งค่าได้โดยใช้สตอรี่บอร์ดที่มีการเข้ารหัสเล็กน้อยและวิธีนี้อาจมีประโยชน์มากหากคุณตั้งค่าสีเส้นขอบบนวัตถุ UI หลาย ๆ
ด้านล่างนี้เป็นขั้นตอนในการบรรลุเป้าหมาย
- สร้างหมวดหมู่ในคลาส CALayer ประกาศทรัพย์สินของประเภทUIColorกับชื่อที่เหมาะสมผมจะชื่อเป็นborderUIColor
- เขียน setter และ getter สำหรับคุณสมบัตินี้
- ในเมธอด 'Setter' เพียงตั้งค่าคุณสมบัติ "borderColor" ของเลเยอร์เป็นค่า CGColor สีใหม่
- ในเมธอด 'Getter' ส่งคืน UIColor ด้วย borderColor ของเลเยอร์
PS: โปรดจำไว้ว่าหมวดหมู่ไม่สามารถจัดเก็บคุณสมบัติได้ 'borderUIColor' ใช้เป็นคุณสมบัติจากการคำนวณเช่นเดียวกับการอ้างอิงเพื่อให้บรรลุสิ่งที่เรามุ่งเน้น
โปรดดูตัวอย่างโค้ดด้านล่างนี้
วัตถุประสงค์ C:
ไฟล์อินเทอร์เฟซ:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
@property (nonatomic, assign) UIColor* borderUIColor;
@end
ไฟล์การนำไปใช้งาน:
#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!)
}
}
}
และสุดท้ายไปที่กระดานเรื่องราว / XIB ของคุณทำตามขั้นตอนที่เหลือ
- คลิกที่วัตถุมุมมองที่คุณต้องการตั้งค่าสีเส้นขอบ
- คลิกที่ "Identity Inspector" (ที่ 3 จากซ้าย) ในแผง "Utility" (ด้านขวาของหน้าจอ)
- ภายใต้ "User Defined Runtime Attributes" คลิกที่ปุ่ม "+" เพื่อเพิ่มเส้นทางสำคัญ
- กำหนดประเภทของเส้นทางสำคัญเป็น "สี"
- ป้อนค่าสำหรับพา ธ คีย์เป็น "layer.borderUIColor" [โปรดจำไว้ว่านี่ควรเป็นชื่อตัวแปรที่คุณประกาศในหมวดหมู่ไม่ใช่borderColor ในที่นี้คือborderUIColor ]
- สุดท้ายเลือกสีที่คุณต้องการ
คุณต้องตั้งค่าคุณสมบัติlayer.borderWidthเป็นอย่างน้อย 1 เพื่อดูสีเส้นขอบ
สร้างและเรียกใช้ Happy Coding. :)