mvc架構模式
m:model,模型,儲存資料
v:view,檢視,顯示控制項及資料
c:controller,控制器,傳遞資料,管理檢視
xib1).xib檔案是一種自定義檢視。
2)建立方法:file—new—file,選擇ios—user inte***ce—view/empty。
3)好處:可以先設計好自定的檢視,然後呼叫
4)編譯執行後,在應用程式包中是以.nib檔案存在
5)讀取並使用nib檔案的兩種方法:
//第一種方法
/// 載入nib檔案的方法:特別注意!!! -- 不要寫副檔名
uiview *bgview = [[[nsbundle mainbundle] loadnibnamed:@"hmcolorview" owner:nil options:nil] firstobject];
[self.view addsubview:bgview];
//第二種方法
// 這裡注意:bundle = nil 是預設去『包』的根目錄去找
uinib *nib = [uinib nibwithnibname:@"hmcolorview" bundle:[nsbundle mainbundle]];
uiview *bgview = [[nib instantiatewithowner:nil options:nil] lastobject];
知識點:
1、幀動畫
建立幀動畫有兩種方式
第一種是將陣列組裝成動畫
// 將陣列 ,組裝成乙個動畫
uiimage *image = [uiimage animatedimagewithimages:imagesm.copy duration:0.1 * imagesm.count];
// 把動畫設定給uiimageview
self.imageview.image = image;
第二種方法是:
// 建立存放的可變陣列2、plist檔案的兩種讀取方式nsmutablearray *imagesm = [nsmutablearray array];
for (int i = 1; i <= 25; i++)
// 設定動畫陣列
self.imageview.animationimages = imagesm.copy;
// 設定動畫時間
[self.imageview setanimationduration:0.1 * imagesm.count];
[self.imageview setanimationrepeatcount:1];
// 注意!!!!不要忘了開啟動畫
[self.imageview startanimating];
/*
plist檔案的作用:儲存資料
plist檔案的本質:是xml檔案,什麼是xml檔案?extensible markup language - xml:可擴充套件標記語言,詳細關於xml語言我們放在網路多執行緒講解。簡單說xml語言就是乙個節點有開始同時也有結束
例如:icon
greenman
plist 檔案存放到**了?
我們的應用程式在安裝到手機上的時候回被『打包』,
通過 [nsbundle mainbundle] 查詢到『包』的路徑;(每一次執行『包』路徑都不相同,每一次都會生成新的『包』)
plist檔案就被放在包的根目錄下
通過 [[nsbundle mainbundle] pathforresource:oftype:] 方法在『包』的根目錄下查詢檔案,返回檔案的路徑
*/
plist檔案存在應用程式包中,首先要找到包路徑,然後才能讀取檔案。
獲取包路徑的方法:
[[nsbundle mainbundle] bundlepath];//應用程式的包路徑
1)url讀取
//獲取url位址
nsurl *url = [[nsbundle mainbundle] urlforresource:@"demo" withextension:@"plist"];
//plist檔案內容要麼是nsarry,要麼是nsdictionary
//加入我們知道plist檔案裡存放的是 字典,我們還可以通過 nsdictionary 的 dictionarywithcontentsoffile:方法載入
nsarray *arrdict = [nsarray arraywithcontentsofurl:url];
for (nsdictionary *dict in arrdict)
2)檔案路徑
nsstring *filepath = [[nsbundle mainbundle] pathforresource:@"demo" oftype:@"plist"];
// 載入資料
nsarray *arrdict = [nsarray arraywithcontentsoffile:filepath];
for (nsdictionary *dict in arrdict)
3、使用uiimage時會導致記憶體大量增加
uiimage *image = [uiimage imagenamed:imagename];
// 獲取檔案路徑
nsstring *filepath = [[nsbundle mainbundle] pathforresource:imagename oftype:@"png"];
// 建立物件
uiimage *image = [uiimage imagewithcontentsoffile:filepath];
使用imagewithcontentsoffile: 使用完後會自動釋放,不會快取。
此時注意:資源不能放在assets.xcassets資料夾下面。因為上述找檔案路徑的方法只能在包的根目錄下查詢。放在assets.xcassets資料夾下,程式在編譯執行後,會將所有壓縮到根目錄下乙個檔案中,無法找到這些資源。
因此要放置到supporting files,並複製、建立分組。
4、控制器到控制項的引用鏈條
view controller→(強引用)view→(強引用)subviews→(強引用)控制項(子檢視)。
view controller對控制項(子檢視)是弱引用關係。
若檢視控制器對控制項是強引用,也不會造成記憶體洩漏,因為沒有構成迴圈引用,但是會造成空間的延遲釋放。
5、動畫巢狀使用
// 以動畫的形式讓label顯示出來
// 延遲1秒鐘,開始『消失』動畫
// 消失動畫結束後,移除label,並且禁用按鈕
[uiview animatewithduration:1 animations:^ completion:^(bool finished) completion:^(bool finished) ];
}];
MVC 架構模式
mvc架構模式 模型 檢視 控制器 model view controller 模型 模型代表應用程式的資料以及用於訪問控制和修改這些資料的業務規則,當模型發生改變時,它會通知檢視,並為檢視提供查詢模型相關狀態的能力.同時,它也為控制器提供訪問封裝在模型內部的應用程式功能的能力.檢視 檢視用來組織模...
MVC架構模式
m model 資料管理 如資料庫訪問 v view 資料顯示 介面 c controller 控制響應策略 組成mvc的三種模式 組合模式 策略模式 觀察者模式 view層實現了組合模式 通過樹狀結構組織介面控制項物件。model和view層,實現了觀察者模式 model是被觀察的物件,view是...
MVC 架構模式
面試的時候被問到有關 mvc 的問題,雖然這塊知識點並不難,但還是總結一下,下次再遇到的話,爭取能做到侃侃而談,而不是簡簡單單把概念給複述一遍。mvc 模型代表 model view controller,即模型 檢視 控制器模式,從上到下依次介紹 mvc 屬於架構模式的一種,所謂架構就是如何設計乙...