歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋(píng)果6袋
6
麥子學(xué)院

有關(guān)UIview的幾個(gè)常用方法

發(fā)布時(shí)間:2016-06-16 23:33  回復(fù):0  查看:2831   最后回復(fù):2016-06-16 23:33  
UIkit框架 ,關(guān)于 UIview ,有幾個(gè)常用的方法以及其使用的場(chǎng)景,這里給大家總結(jié)一下。
初始化方法
1. 這個(gè)方法就是大家熟悉的構(gòu)造方法 , 在初始化 控件 的時(shí)候調(diào)用 , 我們可以在這個(gè)方法內(nèi)為這個(gè) 控件 添加一些控件 , 這樣 , 當(dāng)我們創(chuàng)建完成這個(gè) 控件的時(shí)候 , 這個(gè) 控件 中就有了我們想要的控件 ;
- (instancetype)init {
    if (self = [super init]) {
        //  添加子控件
    }
    return self;
}
2. 這個(gè)方法也是一個(gè)構(gòu)造方法 , 與上面的 -init  方法的區(qū)別僅在于在這個(gè)構(gòu)造方法中 , 我們要傳入一個(gè)  frame, 以便我們?cè)诔跏蓟?控件 的時(shí)候可以給 控件 指定我們傳入的  frame; 同樣在這個(gè)方法中我們也可以為 控件 添加我們想要的控件 ;
- (instancetype)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        //  添加子控件
    }
    return self;
}
3. 同樣這個(gè)方法也是一個(gè)構(gòu)造方法 , 但不在于 , 這個(gè)方法是在特殊 ( 當(dāng)對(duì)象是從文件 ( 不僅僅只是  xib storyboard) 中創(chuàng)建 ) 的時(shí)候調(diào)用 . 同樣在這個(gè)方法中我們也可以為 控件 添加我們想要的控件 ;
但是這里有一點(diǎn)是要注意 :
在這個(gè)方法調(diào)用的時(shí)候 ,xib  或者  storboard  與文件的連線還沒(méi)有生成 ; 所以在這里調(diào)用方法是無(wú)效的 , 請(qǐng)注意這點(diǎn) .
//  當(dāng)對(duì)象從文件 ( 不單單只 xib sb) 中創(chuàng)建的時(shí)候調(diào)用
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        //  添加子控件
        //  在該方法調(diào)用的時(shí)候 ,xib/sb 中關(guān)聯(lián)的控件還沒(méi)有連好線 .
    }
    return self;
}
其它方法
#pragma mark -  當(dāng)控制器從 xib/sb 中創(chuàng)建時(shí)調(diào)用
- (void)awakeFromNib {
    //  添加子控件
    //  獲得 xib/sb 中子控件 , 給子控件屬性設(shè)置
}
這個(gè)方法 , 當(dāng)添加子 ` 控件 ` 時(shí)或當(dāng)前控件 frame 發(fā)生改變時(shí) ( 改變前和改變后的 frame 要不一致 );
#pragma mark - 一般在這個(gè)方法里面對(duì)構(gòu)造方法中添加的 ` 控件 ` 的  frame  進(jìn)行設(shè)置
- (void)layoutSubviews {
    [super layoutSubviews];
    //  布局子控件的 frame
}
#pragma mark -  當(dāng)類被加載時(shí)調(diào)用
+ (void)load {
}
#pragma mark -  當(dāng)類第一次使用時(shí)調(diào)用
+ (void)initialize {
}
原文來(lái)自:簡(jiǎn)書(shū)/ TobyoTenma
您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?