iOS自學(xué)筆記之XIB的使用教程
軟硬件環(huán)境
- macOS Sierra
- Xcode 8.2.1
前言
前面學(xué)習(xí)iOS編程時(shí),畫(huà)UI控件的時(shí)候用的都是直接敲代碼的方式,基本都是先創(chuàng)建一個(gè)相應(yīng)控件的對(duì)象,然后設(shè)置對(duì)象屬性,最后添加相應(yīng)的事件響應(yīng)方法。那強(qiáng)大如Apple這樣的公司有沒(méi)有提供一種更方便、更易學(xué)的UI編寫(xiě)方法呢?答案是肯定的。那就是今天本文的主角XIB。它是一種可視化的方法,極大地降低了學(xué)習(xí)iOS編程的門(mén)檻。
XIB實(shí)踐
創(chuàng)建一個(gè)名叫iOSXIBDemo的工程,打開(kāi)工程info.plist文件,將Main storyboard file base name這個(gè)標(biāo)簽去掉,如下圖所示
創(chuàng)建一個(gè)iOS的Cocoa Touch類(lèi)RootViewController,作為根視圖控制器,它繼承自UIViewController,并勾選上”Also create XIB file”選項(xiàng)
打開(kāi)RootViewController.xib文件,從控件區(qū)中拖動(dòng)一個(gè)UILabel和一個(gè)UIButton,界面上的操作就是這么簡(jiǎn)單,那XIB怎么跟代碼同步呢?別著急,找到Xcode右上角的雙環(huán)標(biāo)記,單擊它
這樣在同一個(gè)畫(huà)面就能同時(shí)看到XIB和RootViewController.m了,接著開(kāi)始進(jìn)行代碼同步。找到XIB中的UILable對(duì)象,同時(shí)按住Ctrl鍵 + 鼠標(biāo)左鍵,將光標(biāo)移動(dòng)到RootViewController.m中的@interface和@end之間放開(kāi),彈出對(duì)話(huà)框。這里Connection的類(lèi)型,對(duì)于UILabel來(lái)說(shuō)是選Outlet,而UIButton選的是Action。我的理解是的可以響應(yīng)事件的控件就選Action
綁定完成后,在對(duì)應(yīng)的代碼前會(huì)有個(gè)實(shí)心圓。在UIButton點(diǎn)擊響應(yīng)時(shí)間函數(shù)加句打印
- (IBAction)mButton:(id)sender { NSLog(@"button clicked.") ; }
接下來(lái)開(kāi)始加載根視圖控制器,修改AppDelegate.m中的didFinishLaunchingWithOptions方法,同時(shí)需要將RootViewController.h頭文件import進(jìn)來(lái)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds] ; RootViewController* root = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]] ; self.window.rootViewController = root; [self.window makeKeyAndVisible] ; return YES; }
最后代碼執(zhí)行的效果如下
源碼下載:http://xiazai.jb51.net/201701/yuanma/iOS-XIB_jb51.rar
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ios開(kāi)發(fā)Flutter構(gòu)建todo?list應(yīng)用
這篇文章主要為大家介紹了ios開(kāi)發(fā)Flutter構(gòu)建todo?list應(yīng)用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09IOS 上架后出現(xiàn)90034代碼錯(cuò)誤問(wèn)題解決
這篇文章主要介紹了IOS 上架后出現(xiàn)90034代碼錯(cuò)誤問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下2016-11-11IOS 中UIImageView響應(yīng)點(diǎn)擊事件
這篇文章主要介紹了IOS 中UIImageView響應(yīng)點(diǎn)擊事件的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09iOS微信瀏覽器回退不刷新實(shí)例(監(jiān)聽(tīng)瀏覽器回退事件)
下面小編就為大家?guī)?lái)一篇iOS微信瀏覽器回退不刷新實(shí)例(監(jiān)聽(tīng)瀏覽器回退事件)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05iOS給border設(shè)置漸變色的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于iOS給border設(shè)置漸變色的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03iOS開(kāi)發(fā)image背景圖片拉伸問(wèn)題解決分析
這篇文章主要為大家介紹了iOS開(kāi)發(fā)image背景圖片拉伸問(wèn)題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07