




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】IOS如何自定義UIView
IOS中一般會(huì)用到幾種方式自定義UIView1、繼承之UIView的存代碼的自定義View2、使用xib和代碼一起使用的自定義View3、存xib的自定義View(不需要業(yè)務(wù)處理的那種)本文主要就介紹下存代碼的自定義UIView和能夠在storeboard中實(shí)時(shí)顯示效果的自定義UIView/upload/information/20200623/126/122221.png/upload/information/20200623/126/122223.png1.實(shí)現(xiàn)在storeboard中實(shí)時(shí)顯示效果的自定義UIView
1、創(chuàng)建MyView.h繼承UIView#import
<UIKit/UIKit.h>
//
設(shè)置類為可視化設(shè)計(jì)
IB_DESIGNABLE
@interface
MyView
:
UIView
//
IBInspectable
為可視化設(shè)計(jì)屬性
//
邊框?qū)挾?/p>
@property
(nonatomic,assign)IBInspectable
float
borderWidth;
//
邊框顏色
@property
(nonatomic,retain)IBInspectable
UIColor*
borderColor;
//
圓角
@property
(nonatomic,assign)IBInspectable
float
cornerRadius;
@endIB_DESIGNABLE:代表的是這個(gè)類可以在storeboard中顯示實(shí)時(shí)的效果IBInspectable:代表把這個(gè)屬性能在storeboard中修改2、MyView.m的實(shí)現(xiàn)//
//
MyView.m
//
01_CirProgress
//
//
Created
by
xgao
on
15/10/29.
//
Copyright
(c)
2015年
xgao.
All
rights
reserved.
//
#import
"MyView.h"
@implementation
MyView
//
邊框?qū)挾?/p>
-
(void)setBorderWidth:(float)borderWidth{
self.layer.borderWidth
=
borderWidth;
}
//
邊框顏色
-
(void)setBorderColor:(UIColor
*)borderColor{
self.layer.borderColor
=
borderColor.CGColor;
}
//
圓角
-
(void)setCornerRadius:(float)cornerRadius{
self.layer.cornerRadius
=
cornerRadius;
}
@end3、在storeboad中添加一個(gè)view,并且設(shè)置這個(gè)view的類為我們剛才創(chuàng)建的MyView/upload/information/20200623/126/122224.png/upload/information/20200623/126/122225.png2.實(shí)現(xiàn)純代碼的自定義View1、創(chuàng)建一個(gè)繼承UIView的MyProgress類文件,MyProgress.h如下:#import
<UIKit/UIKit.h>
@interface
MyProgress
:
UIView
//
當(dāng)時(shí)進(jìn)度值
@property
(nonatomic,assign)
float
progressValue;
@end2、MyProgress.m如下:#import
"MyProgress.h"
@implementation
MyProgress
{
float
_proValue;
}
//
重寫初始化方法
-
(id)initWithFrame:(CGRect)frame{
self
=
[super
initWithFrame:frame];
if
(self)
{
//
設(shè)置背影為透明色
self.backgroundColor
=
[UIColor
clearColor];
}
return
self;
}
//
重設(shè)progressValue屬性
-
(void)setProgressValue:(float)progressValue
{
_progressValue
=
progressValue;
//
重新畫UI
[self
setNeedsDisplay];
}
//
繪圖
-
(void)drawRect:(CGRect)rect
{
//
獲取畫圖的上下文
CGContextRef
ctx
=
UIGraphicsGetCurrentContext();
/****
繪制圓形背景線
****/
//
圓的半徑
float
r
=
rect.size.width
/
2.0;
//
全圓
CGFloat
endAngle
=
M_PI
*
2;
//
畫圓形線
CGContextAddArc(ctx,
r,
r,
r,
0,
endAngle,
0);
//
背影顏色
CGContextSetRGBFillColor(ctx,
0.7,
0.7,0.7,
1);
//
完成繪制
CGContextFillPath(ctx);
/****
繪制扇形區(qū)域
****/
//
計(jì)算結(jié)束角度
endAngle
=
M_PI
*
2
*
_progressValue;
/**
畫圓
*
參數(shù)1:c
當(dāng)前上下文
*
參數(shù)2:x
圓的X坐標(biāo)
*
參數(shù)3:y
圓的Y坐標(biāo)
*
參數(shù)4:radius
圓的半徑
*
參數(shù)5:startAngle
開始角度
*
參數(shù)6:endAngle
結(jié)束角度
*
參數(shù)7:clockwise
是否逆時(shí)針
*/
CGContextAddArc(ctx,
r,
r,
r,
0,
endAngle,
0);
//
連成線,成弧形
CGContextAddLineToPoint(ctx,
r,
r);
//
其實(shí)就是在連接的那條線上加一個(gè)點(diǎn),讓線條連接到那一個(gè)點(diǎn),就像拉弓,可加多個(gè)點(diǎn)
//
CGContextAddLineToPoint(ctx,
r
+
20,
r
+
20);
//
填充顏色
CGContextSetRGBFillColor(ctx,
0,
0,
1,
1);
//
完成繪制
CGContextFillPath(ctx);
}3、調(diào)用自定義的MyProgress類#import
"MyProgress.h"
@interface
ViewController
()
{
MyProgress*
_myProView;
}
@end
@implementation
ViewController
-
(void)viewDidLoad
{
[super
viewDidLoad];
//
創(chuàng)建自定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)形象推廣策劃合同標(biāo)準(zhǔn)文本
- 產(chǎn)品工業(yè)合同標(biāo)準(zhǔn)文本
- 3人合伙合同標(biāo)準(zhǔn)文本
- 業(yè)務(wù)結(jié)算費(fèi)合同標(biāo)準(zhǔn)文本
- 鄉(xiāng)村農(nóng)田養(yǎng)殖合同樣本
- 企業(yè)店過戶合同樣本
- 個(gè)人購銷用途合同樣本
- 2025倉庫租賃合同樣本
- 2024年記者證前瞻分析試題及答案
- 2025至2030年中國(guó)衛(wèi)浴架子行業(yè)投資前景及策略咨詢報(bào)告
- GB/T 45251-2025互聯(lián)網(wǎng)金融個(gè)人網(wǎng)絡(luò)消費(fèi)信貸貸后催收風(fēng)控指引
- 西交大政治考題及答案
- 鐵路施工安全教育培訓(xùn)
- 第一屆貴州技能大賽銅仁市選拔賽平面設(shè)計(jì)技術(shù)文件
- 2025年陜西農(nóng)業(yè)發(fā)展集團(tuán)有限公司(陜西省土地工程建設(shè)集團(tuán))招聘(200人)筆試參考題庫附帶答案詳解
- 高血壓患者收縮壓TTR和強(qiáng)化降壓對(duì)心血管事件的影響
- 5 《人應(yīng)當(dāng)堅(jiān)持正義》說課稿 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊(cè)
- 《失語癥的康復(fù)治療》課件
- 2025年安徽省交通控股集團(tuán)招聘筆試參考題庫含答案解析
- 品管圈活動(dòng)在提高急診危重患者科間交接規(guī)范率的效果分析
- 2024年德州市人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
評(píng)論
0/150
提交評(píng)論