xib中為各種控件設置圓角
- 通過代碼的方式設置
@interface ViewController () @property (weak, nonatomic) IBOutlet UIView *myView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.myView.layer.masksToBounds = YES; self.myView.layer.cornerRadius = 10; }
- 通過xib快速設置圓角
- 利用User Defined Runtime Attributes 進行設置

身份檢查器
- 詳細步驟介紹
- 點擊UI控件
- 點擊 Xcode 右側上方身份檢查器(左起第三個按鈕)
- 找到 Runtime Attributes 屬性,通過Key Path 和 Value 進行設置
- 設置圓角需要到的Key Path:
- layer.cornerRadius ,注意該 key 對應 Value 的 type 應該設置為 String
- layer.masksToBounds ,注意該 key 對應 Value 的 type 應該設置為 Boolean , 當右側出現對號時為YES
- 注意:經過測試,
UILabel 必須
設置設置 masksToBounds 這一鍵值對,才會出現圓角效果;UIButton、UIView、UIImageView 只需設置 layer.cornerRadius 這一鍵值對就可實現圓角效果
Xib 為控件設置邊框效果
- 通過代碼方式進行設置
- (void)viewDidLoad { [super viewDidLoad]; self.myView.layer.borderColor = [UIColor redColor].CGColor; self.myView.layer.borderWidth = 2; }
- 通過xib快速設置邊框
- 所用方法和上面所講Xib設置圓角基本相同,唯一不同的就是設置 key Path 鍵值對
- 設置邊框需要到的Key Path:
- layer.borderWidth ,注意該 key 對應 Value 的 type 應該設置為 String
- layer.borderColor , 注意該 key 對應 Value 的 type 應該設置為 Color
當我們滿懷欣喜的運行程序的時候,你會發現結果並不會如你所想,邊框效果並沒有出現,那么難道是我們的方法不對么?
- 不知道你有沒有注意到 layer.borderColor 對應值得類型:Color;經常用代碼進行邊框設置的你,一定記得我們設置的顏色類型為
CGColor
,不錯問題就出在了這上面- 按照上述方法我們設置的邊框顏色為
UIColor
類型,當然不會起作用了啊。
- 按照上述方法我們設置的邊框顏色為
- 下面就給出一種簡便的解決方法,我們只需要為 CALayer 創建一個分類就可以了,具體代碼如下:
CALayer+ZZYXibBorderColor.h #import <QuartzCore/QuartzCore.h> @interface CALayer (ZZYXibBorderColor) @end CALayer+ZZYXibBorderColor.m #import "CALayer+ZZYXibBorderColor.h" #import <UIKit/UIKit.h> @implementation CALayer (ZZYXibBorderColor) - (void)setBorderColorWithUIColor:(UIColor *)color { self.borderColor = color.CGColor; } @end
注意此時,設置邊框顏色就需要用
layer.borderColorWithUIColor
來代替layer.borderColor
注意:當我們使用Xib設置控件圓角、邊框的時候,如果將key Path寫錯
,系統不會報錯
,但是運行不會實現理想的效果
文/念男(簡書作者)
原文鏈接:http://www.jianshu.com/p/3f6a4343139e
著作權歸作者所有,轉載請聯系作者獲得授權,並標注“簡書作者”。
原文鏈接:http://www.jianshu.com/p/3f6a4343139e
著作權歸作者所有,轉載請聯系作者獲得授權,並標注“簡書作者”。