IOS開發--自定義控件

有沒有這種需求,自定一個panel,裏面放了好幾個控件,在多個頁面用到這個panel。

解決這個問題有三條思路:

1.自己繼承UIView寫一個類,在這裏面以代碼的形式添加需要的控件,完成佈局。

2.使用XIB佈局文件完成佈局

3.使用storyboard完成佈局

在這三中方式中,1顯得高端大氣上檔次,嘩啦嘩啦敲半天。雖然我是技術控,但是也很反感這純粹的情懷。

     3以UIViewController滿足不了我的需要,用起來不太方便。(也可能很好用,我不會用,求指點)

所以就講解一下XIB如何自己組合實現控件,而且在這裏也不講前因後果的,循序漸進的搞半天,搞得頭都暈,直接上最終用法。

用發分爲一下三步:

1.新建一個繼承自NSObject的類,用來存放自定義的XIB中的UIView。

a.爲了方便這個類中添加一個類方法

+ (id)viewFromNibByName:(NSString *)name{

    FileOwner2* owner = [FileOwner2 new];

    [[NSBundle mainBundle] loadNibNamed:name owner:owner options:nil];

    return owner.view;

}

2.新建一個XIB文件。

a.設置一下XIB的大小尺寸,如圖:

b.設置XIB的FileOwner爲1中新建的類。


c.將View與FileOwner建立關聯,這樣FileOwner可以對其進行操作。


3.在其他文件使用

    //加載View5

    UIView* view5 = [FileOwner2 viewFromNibByName:@"View5"];

    [view5 setFrame:CGRectMake(0, 400, 375, 100)];

    [self.view addSubview:view5];

總結:可以多個XIB公用一個FileOwner這樣,可以通過一個FileOwner的靜態方法通過名字不同來新建出不同的panel了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章