iOS基礎(chǔ)總結(jié)_UI

1合敦、makeKeyWindow赞哗、makeKeyAndVisible

keyWindow是指主窗口
makeKeyWindow:把當(dāng)前UIWindow作為主窗口参歹;
makeKeyAndVisible:把當(dāng)前UIWindow作為主窗口勾哩,并顯示出來;

2褒繁、UIViewAutoresizing

UIViewAutoresizing是一個(gè)枚舉類型褐健,用于UIView適配
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                 = 0, //默認(rèn)值,不會(huì)隨父視圖的改變而改變
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,//自動(dòng)調(diào)整view與父視圖左邊距澜汤,以保證右邊距不變
    UIViewAutoresizingFlexibleWidth        = 1 << 1,//自動(dòng)調(diào)整view的寬度,保證左邊距和右邊距不變
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,//自動(dòng)調(diào)整view與父視圖右邊距舵匾,以保證左邊距不變
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,//自動(dòng)調(diào)整view與父視圖上邊距俊抵,以保證下邊距不變
    UIViewAutoresizingFlexibleHeight       = 1 << 4,//自動(dòng)調(diào)整view的高度,以保證上邊距和下邊距不變
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5//自動(dòng)調(diào)整view與父視圖的下邊距坐梯,以保證上邊距不變
};

使用示例:
self.mainTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

3徽诲、imageNamed與imageWithContentsOfFile區(qū)別

兩者都是用于實(shí)例化UIImage
imageName在使用的時(shí),系統(tǒng)會(huì)cache并管理cache吵血,對(duì)于重復(fù)加載的圖像谎替,速度會(huì)提升很多,這樣反而用戶體驗(yàn)好蹋辅,但是圖片不宜過大钱贯;
imageWithContentsOfFile在使用完成后,不會(huì)緩存侦另,適用于不常使用的圖片(如開啟啟動(dòng)頁)

imageName基于assets中取圖片秩命;
imageWithContentsOfFile基于Bundle取圖片,要求圖片不能放在assets中褒傅;

4弃锐、IBAction

該關(guān)鍵字用于告知Interface Builder,此方法是一個(gè)操作殿托,且可以被某個(gè)控件觸發(fā)霹菊;
示例:
-(IBAction) greenClick{
    NSLog(@"綠色點(diǎn)擊");
}
添加關(guān)鍵字后,該方法左側(cè)出現(xiàn)一個(gè)圓圈支竹,可以用來與某控件連接旋廷,如Button

5、IBOutlet

關(guān)鍵字IBOutlet 是一個(gè)對(duì)象屬性礼搁,用于引用另一個(gè)對(duì)象柳洋。
該關(guān)鍵字用于告知 Interface Builder,在包含 IBOutlet 聲明的對(duì)象與引用對(duì)象之間建立連接叹坦。
示例:
@property (nonatomic , weak) IBOutlet UILabel *label;
添加關(guān)鍵字后熊镣,該方法左側(cè)出現(xiàn)一個(gè)圓圈,可以用來與storyboard上的UILabel控件

6、Xib(x指xml绪囱,ib指interface build)

.xib編譯后為.nib;
.xib用于描述UI界面测蹲,可以是Controller,也可以是UIView;
.xib常用于描述局部界面鬼吵,如:自定義控件(自定義控件時(shí)扣甲,可通過class關(guān)聯(lián)代碼類)

.xib可以放置多組控件,使用時(shí)獲取出來是NSArray格式齿椅,獲取方式:
方式1:
NSArray* array = [[NSBundle mainBundle]loadNibNamed:@"TestXib1" owner:nil options:nil];
[self.view addSubview:array[0]];

方式2:
UINib *nib = [UINib nibWithNibName:@"TestXib1" bundle:[NSBundle mainBundle]];
NSArray* array = [nib instantiateWithOwner:nil options:nil];
[self.view addSubview:array[0]];

7琉挖、initWithFrame、initWithCoder涣脚、awakeFromNib

自定義控件時(shí)示辈,會(huì)用到3個(gè)系統(tǒng)方法:initWithFrame、initWithCoder遣蚀、awakeFromNib

initWithFrame矾麻,如果控件是從代碼[[XibShow alloc] initWithFrame方式創(chuàng)建的,會(huì)執(zhí)行initWithFrame方法芭梯,從xib险耀、storyboard中創(chuàng)建時(shí),不會(huì)執(zhí)行該方法玖喘;

initWithCoder甩牺,如果控件是從xib、storyboard中創(chuàng)建時(shí)累奈,會(huì)執(zhí)行該方法柴灯;

awakeFromNib,該方法是在initWithCoder之后調(diào)用费尽;

8赠群、頁面布局

頁面布局通常包含三種方式:手寫代碼、xib旱幼、storyboard
1查描、xib通常用于封裝控件,也可用于頁面布局柏卤;
2冬三、storyboard主要用于頁面布局,可包含多個(gè)View Controller缘缚,描述多VC直接的關(guān)系勾笆;

xib用于頁面布局時(shí),controller名稱與xib名稱最好一致桥滨,不然加載不到窝爪;

9弛车、頁面跳轉(zhuǎn)
跳轉(zhuǎn)示例:

xib跳轉(zhuǎn):
BViewController* bc = [[BViewController alloc]init];
bc.bprotocol = self; 
bc.param = @"這是主頁面參數(shù)";
 [self presentViewController:bc animated:true completion:nil];

storyboard跳轉(zhuǎn):
UIStoryboard* usb = [UIStoryboard storyboardWithName:@"AStoryboard" bundle:nil]; AViewController* ac = [usb instantiateViewControllerWithIdentifier:@"AViewController"];
ac.block = ^(NSString *str) {
        NSLog(@"A頁面協(xié)議回調(diào):%@",str);
    };
ac.param = @"這是主頁面參數(shù)";
 [self presentViewController:ac animated:true completion:nil];

10、頁面間參數(shù)傳遞
示例:A頁面 ---> B頁面 --> C頁面

1蒲每、A --> B , 可在B頭文件中定義屬性纷跛,A傳屬性即可;
2邀杏、B --> A 贫奠,可在B頭文件中定義協(xié)議、協(xié)議屬性望蜡,B調(diào)用協(xié)議中定義的方法唤崭,回傳參數(shù),
A的Controller實(shí)現(xiàn)協(xié)議脖律,重寫協(xié)議方法谢肾,接收B的數(shù)據(jù)(類似于Android的接口回調(diào))
3、B --> A, 可在B頭文件中定義block回調(diào)状您、block屬性,B通過block屬性回傳參數(shù)兜挨,
A直接通過B的block屬性接收B回傳的數(shù)據(jù)膏孟;
4、C --> A , 跨頁面拌汇,可通過通知實(shí)現(xiàn)柒桑;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市噪舀,隨后出現(xiàn)的幾起案子魁淳,更是在濱河造成了極大的恐慌,老刑警劉巖与倡,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件界逛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡纺座,警方通過查閱死者的電腦和手機(jī)息拜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來净响,“玉大人少欺,你說我怎么就攤上這事〔鱿停” “怎么了赞别?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)配乓。 經(jīng)常有香客問我仿滔,道長(zhǎng)惠毁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任堤撵,我火速辦了婚禮仁讨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘实昨。我一直安慰自己洞豁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布荒给。 她就那樣靜靜地躺著丈挟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪志电。 梳的紋絲不亂的頭發(fā)上曙咽,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音挑辆,去河邊找鬼例朱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鱼蝉,可吹牛的內(nèi)容都是我干的洒嗤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼魁亦,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼渔隶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起洁奈,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤间唉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后利术,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呈野,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年印叁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了际跪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喉钢,死狀恐怖姆打,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肠虽,我是刑警寧澤幔戏,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站税课,受9級(jí)特大地震影響闲延,放射性物質(zhì)發(fā)生泄漏痊剖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一垒玲、第九天 我趴在偏房一處隱蔽的房頂上張望陆馁。 院中可真熱鬧,春花似錦合愈、人聲如沸叮贩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽益老。三九已至,卻和暖如春寸莫,著一層夾襖步出監(jiān)牢的瞬間捺萌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工膘茎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留桃纯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓披坏,卻偏偏與公主長(zhǎng)得像态坦,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刮萌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容