oc swift xib 快速設置 邊框

在 xib 中可以通過user defined runtime attributes來設置邊框的相關屬性,如圖

user defined runtime attributes.png
但是這樣做的方法簡直是令人腦瓜疼,手寫容易出錯,復制粘貼也麻煩,而且可怕的是,當你同時設置圓角和邊框的時候,簡直就是在浪費時間。
so,我們可以利用 分類 和 iOS 的IBInspectable關鍵字在 xib 添加自定義的屬性。
原理如下:
給 UIView 擴展一個分類,用IBInspectable修飾符來定義cornerRadius、borderWidth和borderColor屬性,即可在 xib 上看見新增的三個屬性了。
WX20181213-122949@2x.png

代碼如下,源文件請點擊:https://github.com/isWinner/LayerXibDemo

Object-C

@interface UIView (BorderCircle)
/* 圓角半徑 */
@property(nonatomic, assign) IBInspectable CGFloat cornerRadius;
/* 邊框寬度 */
@property(nonatomic, assign) IBInspectable CGFloat borderWidth;
/* 邊框顏色 */
@property(nonatomic, weak) IBInspectable UIColor *borderColor;

@end


@implementation UIView (BorderCircle)
#pragma mark - -- borderColor
-(void)setBorderColor:(UIColor *)borderColor
{
    self.layer.borderColor = borderColor.CGColor;
}
-(UIColor *)borderColor
{
    return [UIColor colorWithCGColor:self.layer.borderColor];
}
#pragma mark - -- borderWidth
-(void)setBorderWidth:(CGFloat)borderWidth
{
    self.layer.borderWidth = borderWidth;
}
-(CGFloat)borderWidth
{
    return self.layer.borderWidth;
}
#pragma mark - -- cornerRadius
-(void)setCornerRadius:(CGFloat)cornerRadius
{
    self.layer.masksToBounds = (cornerRadius>0);
    self.layer.cornerRadius = cornerRadius;
}
-(CGFloat)cornerRadius
{
    return self.layer.cornerRadius;
}
@end

Swift

extension UIView {
    //  圓角
    @IBInspectable var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        } set {
            layer.masksToBounds = (newValue > 0)
            layer.cornerRadius = newValue
        }
    }
    //  邊線寬度
    @IBInspectable var borderWidth: CGFloat {
        get {
            return layer.borderWidth
        } set {
            layer.borderWidth = newValue
        }
    }
    //  邊線顏色
    @IBInspectable var borderColor: UIColor {
        get {
            return UIColor(cgColor: layer.borderColor!)
        } set {
            layer.borderColor = newValue.cgColor
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容