storyboard或者Xib給View設置邊框屬性(顏色,寬度,圓角)


純代碼設置Button或者其他View的邊框屬性

例: UIView* view = [[UIView alloc]init];

     view.layer.borderWidth = 2.0;

    view.layer.masksToBounds = YES;

     view.layer.cornerRadius = 5.0;

     view.layer.borderColor = [UIColorredColor].CGColor;

 

以下提供自定義控件的時候,使用Xib,或者用sb來進行布局,那么這時候怎么來使用storyboard或者Xib給View設置邊框屬性的方法

其主要設置的方式是通過在 XIB操作欄的User Defined Runtime Attributes中通過 KEY PATH去設置當前控件的屬性,具體步驟如下圖所示:
 
這里寫圖片描述
 
 

設置圓角最常用的是設置圓角,邊框顏色,因此需要用到的 key Path有一下幾個:

  1. layer.cornerRadius ,注意該 key 對應 Value 的 type 應該設置為 String/Number 
    兩種類型均可(代碼設置弧度為:thisViewlayer.masksToBounds = YES)
  2. layer.masksToBounds ,注意該 key 對應 Value 的 type 應該設置為 Boolean , 
    當右側出現對號時為YES(代碼圓角為:thisView.layer.masksToBounds = YES)
  3. layer.borderWidth ,注意該 key 對應 Value 的 type 應該設置為 String/Number 
    兩種類型均可(代碼設置邊框寬度為:thisViewlayer.borderWidth = 2)
  4. layer.borderColor , 注意該 key 對應 Value 的 type 應該設置為 
    Color(代碼設置邊框顏色:thisView.layer.borderColor = [UIColor 
    redColor].CGColor)

其實如果你從上面一直敲下來的話: 
你會發現只有1和2的兩句代碼是有效的; 
3,4兩句代碼看起來並沒有效果

原因:其實是因為在設置borderColor的時候,需要接受的是一個CGColor,而在 key Path中只有Color,其實就是 UIColor,類型是不對的,因此並沒有正確顯示想要展現的顏色.

因此這樣的寫法是有問題的. 
所以要通過添加一個CALayer的類擴展來實現,將key Path中設置的UIColor轉換成為CGColor,為邊框設置顏色,實現如下:

 

 

然后在你的分類.m文件中添加一個屬性

#import "CALayer+XibBorderColor.h"

#import <UIKit/UIKit.h>

@implementation CALayer (XibBorderColor)

 

- (void)setBorderColorWithUIColor:(UIColor *)color

{

    

    self.borderColor = color.CGColor;

}

 

@end

這樣以后,只需要將key Path中的layer.borderColor修改成為layer.setBorderColorWithUIColor 就可以了
 
 
 
添加陰影同理:
 

-(void)setShadowColorWithUIColor:(UIColor *)color

{

    self.shadowColor = color.CGColor;

}

 

@end

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM