iOS知識點

// 當XIB 中的文件加載完成會調(diào)用此方法

xib? 存儲在硬盤中聪黎。 當你沒有使用的時候它是不會加載到內(nèi)存的。當你調(diào)用的時候加載到內(nèi)存

-awakeFromNib

{

}

-(void)viewDidLoad

此方法在ViewController 實例中的view 被加載完畢后調(diào)用挽铁,如需要重定義某些要?在view 加載完畢后立刻執(zhí)行的動作或者界面修改双戳,則應(yīng)該把代碼寫在此函數(shù)中益楼。

// app啟動完畢時調(diào)用

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;


知識點:

strong? ? ? ? ? ? ? ? ? ? ? ? 數(shù)組? ? ? OC 對象?

weak? ? ? ? ? ? ? ? ? ? ? ? ? UI控件? ? 代理對象

assign? ? ? ? ? ? ? ? ? ? ? ? 基本數(shù)據(jù)類型? ? 數(shù)值類型? bool? ? 結(jié)構(gòu)體

copy? ? ? ? ? ? ? ? ? ? ? ? ? 字符串NSString

知識點:查看文件路徑? 方法一:NSLog(@“ %@“,NSHomeDirectory());

方法二: 打個斷點po NSHomeDirectory () 查看資源路徑知識點:ViewController 的生命周期(Life Circle)loadView -> viewDidLoad ->viewWillAppear -> viewDidAppear ->viewWillDisappear ->viewDidDisappear -> dealloc loadView:一般情況下不用用到氧秘,除非需要重寫設(shè)置View;viewDidLoad/dealloc:視圖加載完成之后的設(shè)置和視圖銷毀的時候調(diào)用省撑;viewWillAppear/viewWillDisappear:視圖即將呈現(xiàn)和視圖即將消失赌蔑;viewDidAppear/viewDidDisappear:視圖展現(xiàn)在屏幕的時候和視圖完全消失在屏幕的時候調(diào)用,默認不做任何操作竟秫;如果

知識點: Xcode 7 中多了一個LaunchScreen,storyboard. 用來設(shè)置啟動界面,如果沒有啟動頁面,默認她的屏幕的大小是4s的大小知識點:

1.? {? int _age }_age? 成員變量以下劃線開頭的好處娃惯,就是可以用于區(qū)分局部變量和成員變量。2.? 屬性變量里面有一個實例變量? _myButton@property (nonatomic, strong) UIButton *myButton;成員變量: _size? 成員變量以下劃線開頭的好處肥败,就是可以用于區(qū)分局部變量和成員變量石景。@interface MyViewController :UIViewControlle{UIButton *yourButton;int _count;id data;}成員變量用于類內(nèi)部拙吉,無需與外界接觸的變量。成員變量默認是protected揪荣,一般情況下筷黔,非子類對象無法訪問因為成員變量不會生成set、get方法仗颈,所以外界無法與成員變量接觸成員變量是定義在{}號中的變量佛舱,如果變量的數(shù)據(jù)類型是一個類則稱這個變量為實例變量。因為實例變量是成員變量的一種特殊情況挨决,所以實例變量也是類內(nèi)部使用的请祖,無需與外部接觸的變量,這個也就是所謂的類私有變量脖祈。局部變量:-(void)viewDidLoad{// 局部變量NSArray *array = [[NSArray alloc] initWithObject:@“123”,nil];}局部變量是根據(jù)其生存周期定義的肆捕,在源文件中的array,其生命周期是在以“{ }”為界限的代碼塊中盖高,雖然它的名稱與成員變量相同慎陵,但不是同一個變量眼虱。屬性變量:@interface MyViewController :UIViewControlle@property (nonatomic, strong) UIButton *myButton;@end因為編譯器會自動為你生成以下劃線開頭的實例變量_myButton,不需要自己手動再去寫實例變量席纽。而且也不需要在.m文件中寫@synthesize myButton捏悬,也會自動為你生成setter,getter方法润梯。屬性變量是用于與其他對象交互的變量过牙。屬性變量的好處就是允許讓其他對象訪問到該變量(因為屬性創(chuàng)建過程中自動產(chǎn)生了set 和get方法)。當然纺铭,你可以設(shè)置只讀或者可寫等寇钉,設(shè)置方法也可自定義。現(xiàn)在大家似乎都不怎么喜歡用成員變量來定義類的變量彤蔽,都喜歡用屬性變量來定義類的變量摧莽。把需要與外部接觸的變量定義在.h文件中,只在本類中使用的變量定義在.m文件中顿痪。實例變量:實例變量本質(zhì)上就是成員變量镊辕,只是實例是針對類而言,編譯器會自動為你生成以下劃線開頭的實例變量? _myButton蚁袭,也會自動為你生成setter征懈,getter方法。如果.m文件中寫了@synthesize myButton揩悄,那么生成的實例變量就是myButton卖哎;如果沒寫@synthesize myButton,那么生成的實例變量就是_myButton删性。全局變量:? 定義:在@implementation外定義的變量(在@implementation中定義也是可以但是一般不這么干)舉例://規(guī)范的 static int hu=3;//全局變量NSString*sttr1=@"S1ViewController";//全局變量@implementation S1ViewController@end?

知識點:Nib? nib是3.0版本以前的產(chǎn)物亏娜,在終端下我們可以看到,NIB其實是一個文件夾蹬挺,里面有可執(zhí)行的二進制文件维贺;Xib? xib是一個基于xml ( 可擴展標記語言 ) 的描述文件,可以實現(xiàn)可視化編程巴帮。無論nib也好溯泣,xib也好,最終在執(zhí)行UIViewController生命周期函數(shù)loadView之前榕茧,都會轉(zhuǎn)化成可執(zhí)行的nib文件垃沦。// static? 是只有這個文件可以訪問。 const? 防止其他文件去改static NSString *const MIOCellId = @"cell";Storyboard:storyboard是多個xib文件集合的描述文件用押,也采用xml格式肢簿。那么storyboard與xib比較,區(qū)別在于:一個工程中可以有多個xib文件,一個xib文件對應(yīng)著一個視圖控制器和多個視圖译仗。而使用storyboard時抬虽,一個工程只需要一個主storyboard文件就可以了。因此纵菌,在包含多個視圖控制器的情況下阐污,采用storyboard管理比較方便,而且storyboard還可以描述界面之間的導航關(guān)系咱圆。加載過程:當app 啟動時笛辟,UIApplicaiton 會自動加載main.storyboard 文件。 同時序苏,會自動加載 main.storyboard? 上的第一個視圖控制器 (view controller)手幢,并且,將該 view controller 所對應(yīng)的 View 加載到UIWindow 對象中忱详。 #import#import "AppDelegate.h"

int main(int argc, char *argv[])

{

@autoreleasepool {

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

}

}

這行代碼的作用是围来,將app delegate class 傳給 UIApplicationMain。? 因為整個App 啟動和運行的入口匈睁,就在UIApplicationMain中监透。

需求:常見知識點

1.方法名字 帶有冒號的 都是有參數(shù)的

2.[self setNeedsDisplay];? 會自動調(diào)用drawRect 方法

3.[self setNeedsLayout]會默認調(diào)用layoutSubView 就可以處理子視圖中的一些數(shù)據(jù)了

4.因為UITextView 繼承自 ScrollView 系統(tǒng)會自動設(shè)置64 的頂部間距

5.作為UIView 沒有 image 屬性 和 backgroudImage 屬性 只能將整張圖片畫到UIView 上面去

6.load 是只要類所在的文件被調(diào)用,而initialize是在類或者其子類的第一個方法被調(diào)用之前調(diào)用航唆。相同點是:方法只會被調(diào)用一次胀蛮。

7. _deal = deal;復制給本頁面的屬性, 在本頁面別的方法里就能調(diào)用這個值

8.[self viewDidLoad]; 在view創(chuàng)建完畢后糯钙,最終都會調(diào)用viewDidLoad粪狼。一般我們會在這里做一些界面的初始化操作,比如往view中添加一些子視圖任岸,從數(shù)據(jù)庫或者網(wǎng)絡(luò)加載模型數(shù)據(jù)裝備到子視圖中再榄。

9.當一個控件沒有尺寸, 但是設(shè)置了子控件是可以顯示出的享潜,但是卻不能點擊交互不跟。

10. (int)(page+0.5) 四舍五入的運算

需求:? 一進來就彈出鍵盤

[textView becomeFirstResponder];

需求:取消第一響應(yīng)者? (退出鍵盤)

[searchBar resignFirstResponder];

需求:? 退下鍵盤

[self.view? endEditing:YES];

需求:? 換單詞

com+F? ? 比如? button 換成 MIOLeftMenuButton? 之后點擊all? 然后點 done? 搞定

需求:切換控制器

modal 出來的控制器 用dismiss 銷毀

[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:publish animated:NO completion:nil];

push 出來的控制器 用pop 銷毀? 切換是可逆的。

[self.navigationController popViewControllerAnimated:YES];

3. 切換 window 的rootViewController? 新特性? 【前兩種都是銷毀會存在內(nèi)存中米碰,window 會銷毀】

需求:設(shè)置啟動圖片延長

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

[NSThread sleepForTimeInterval:0.2];// 這一句代碼延長啟動時長

return YES;

}

需求:計算總頁數(shù)

// 總頁數(shù) == (總個數(shù) + 每頁的最大數(shù) - 1) / 每頁最大數(shù)

NSUInteger rows = (sqaures.count + maxCols - 1) / maxCols;

需求:查看服務(wù)器返回的數(shù)據(jù)

//發(fā)送請求給服務(wù)器

//查看服務(wù)器返回的數(shù)據(jù)

MIOLog(@"%@",responseObject);

//獲取帖子數(shù)據(jù)? 轉(zhuǎn)化成plist 文件

[responseObject writeToFile:@"/Users/linjieai2008qqcom/Desktop/tiezi.plist" atomically:YES];

需求:三種優(yōu)先級

window_.windowLevel =UIWindowLevelAlert;最高? 2

window_.windowLevel =UIWindowLevelStatusBar; 中等 1

window_.windowLevel =UIWindowLevelNormal; 最低 0

需求:獲取應(yīng)用程序窗口的根控制器

[UIApplication sharedApplication].keyWindow.rootViewController

需求:返回控制器的方向

- (NSUInteger)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskLandscape;

}

需求:不需要跟隨父控件的尺寸變化而伸縮

self.autoresizingMask = UIViewAutoresizingNone

需求:永遠可以上拉下拽控件

self.collectionview.alwaysBounceVertical = YES;

需求:查找沙盒路徑

打印NSLog(@“%@”file); 就可以找到sqlite 沙盒路徑? 就能查看 團購收藏的內(nèi)容

需求:換單詞

com+F? ? 比如? button 換成 MIOLeftMenuButton? 之后點擊all? 然后點 done? 搞定

需求 :側(cè)滑動畫功能的實現(xiàn)

[UIView animateWithDuration:2.0 animations:^{

self.navigationController.view.transform = CGAffineTransformMakeTranslation(200, 0);

}];

需求:配置PCH? :

1.創(chuàng)建pch

2.在building settings 中 設(shè)置 Apple LLVM 7.1 language

3.Precompile Prefix Header 設(shè)置為YES 下一行

Prefix Heaser 設(shè)置內(nèi)容為: $(SRCROOT)/網(wǎng)易新聞/pchFile.pch

需求:默認第一個為選中按鈕

/** 選中按鈕? */

@property (nonatomic, weak) UIButton*? selectedButton? ;

//監(jiān)聽按鈕點擊

-(void)buttonClick:(UIButton* )button

{

self.selectedButton.selected = NO;

button.selected = YES;

self.selectedButton = button;

}

UIButton *newsButton =[self setupBtnWithIcon:@"sidebar_nav_news" title:@"新聞" bgColor:MIOColorRGBA(202, 68, 73, alpha)];

[self buttonClick:newsButton];

需求:調(diào)節(jié)狀態(tài)欄字體亮度為白色

//設(shè)置狀態(tài)欄字體為亮色

-(UIStatusBarStyle)preferredStatusBarStyle

{

return UIStatusBarStyleLightContent;

}

問題: 如果還無法正常現(xiàn)實? 就是優(yōu)先級不夠? 购城,如果還不行設(shè)置plist 文件

-(void)viewWillAppear:(BOOL)animated

{

[super viewWillAppear:animated];

[UIApplication? sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

}



狀態(tài)欄的樣式

- (UIStatusBarStyle)preferredStatusBarStyle;

? 狀態(tài)欄的可見性

- (BOOL)prefersStatusBarHidden;

n 通過[UIApplication sharedApplication]可以獲得這個單例對象

n

需求:子類繼承父類重寫時候? 有返回值和沒返回值的情況

1. 沒有返回值

-(void)viewDidAppear:(BOOL)animated

{

[super viewDidAppear:animated];

}

2.有返回值

- (id)initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];

if (self) {

return self;

}

需求:驗證對象是否被銷毀了

-(void)dealloc

{

NSLog(@“ %s ”,__func__);

}

需求:設(shè)置隨機背景色

self.view.backgroundColor =[UIColor colorWithRed:arc4random_uniform(100)/100.0 green:arc4random_uniform(100)/100.0 blue:arc4random_uniform(100)/100.0 alpha:1.0];

需求:1.ios button 點擊Action連接到.h 文件的 @interface 會在 @implementatopm生成方法

2. 鏈接到.m 文件中 @interface 中 也會在@implementation 生成方法

3. 直接鏈接到.m 的@implementation? 會生成方法 吕座! 這三個有什么區(qū)別嗎

解決:1..h 文件里面的成員外部可以訪問(可以設(shè)置輸出口)

2. 會自動生成set 和 get 方法,如果選擇Action(可以設(shè)置輸出口)

3. 可以生成set? 和 get 方法瘪板, 不能設(shè)置輸出口

需求:點語法和setter 如何區(qū)分使用吴趴?

例子: [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal]

btn.contentVerticalAlignment = UIControlContentVerticalAlignment;

解決:用點語法? 實際上是調(diào)用了屬性的set 和 get方法

UIButton titleColor 是個方法不是屬性? 所以點不出來? setTitleColor? 是直接調(diào)用的方法

需求://需要轉(zhuǎn)換坐標系

CGRect newFrame =[from convertRect:from.bounds toView:window];

self.containerView.CenterX = CGRectGetMidX(newFrame);

self.containerView.y = CGRectGetMaxY(newFrame);

比如self.red = [0 ,50, 100 ,100]? self.blue = [100,150,100,100]

理解:? 以紅色視圖的坐標點為遠點的圖形 CGRectMake(50,50,50,50) 轉(zhuǎn)換成以? 變成self.blue 為坐標原點的坐標點? 的值 (150 150 ,50侮攀, 50)锣枝;

CGRect newRect =[self.red convertRect:CGRectMake(50,50,50,50) toView:self.blue];

需求:UIViewController? ? UIView? 的初始化

UIViewController 的初始化在? viewDidLoad

UIView 的自定義xib? 初始化在? awakeFromNib

需求 : 賬號密碼 判斷的時候? 不會造成重復判斷? 直接退出 不執(zhí)行后面的代碼

if(username.length == 0)

{

[self showInfo:@"賬號不能為空" message:@"提示" cancelMess:@"我知道了"];

return;

//return 就不會提醒后面的信息了厢拭。

}


需求 :打印屏幕的尺寸

NSLog(@“? %@ “,NSStringFromCGSize([ UIScreen mainScreen].bounds.size))

需求 : 不設(shè)置啟動圖片的話? 屏幕會變成 4s 的尺寸

launchScreen 其實是把控制器設(shè)置了一個截屏.? 生成了一個圖片

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市撇叁,隨后出現(xiàn)的幾起案子供鸠,更是在濱河造成了極大的恐慌,老刑警劉巖陨闹,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楞捂,死亡現(xiàn)場離奇詭異,居然都是意外死亡趋厉,警方通過查閱死者的電腦和手機寨闹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來君账,“玉大人繁堡,你說我怎么就攤上這事∠缡” “怎么了椭蹄?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞳脓。 經(jīng)常有香客問我塑娇,道長,這世上最難降的妖魔是什么劫侧? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任埋酬,我火速辦了婚禮,結(jié)果婚禮上烧栋,老公的妹妹穿的比我還像新娘写妥。我一直安慰自己,他們只是感情好审姓,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布珍特。 她就那樣靜靜地躺著,像睡著了一般魔吐。 火紅的嫁衣襯著肌膚如雪扎筒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天酬姆,我揣著相機與錄音嗜桌,去河邊找鬼。 笑死辞色,一個胖子當著我的面吹牛骨宠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼层亿,長吁一口氣:“原來是場噩夢啊……” “哼桦卒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起匿又,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤方灾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后琳省,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迎吵,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年针贬,在試婚紗的時候發(fā)現(xiàn)自己被綠了击费。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡桦他,死狀恐怖蔫巩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情快压,我是刑警寧澤圆仔,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站蔫劣,受9級特大地震影響坪郭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脉幢,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一歪沃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嫌松,春花似錦沪曙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贾陷,卻和暖如春缘眶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背髓废。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工巷懈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瓦哎。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蒋譬。 傳聞我的和親對象是個殘疾皇子割岛,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

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

  • 內(nèi)容均轉(zhuǎn)自標哥的技術(shù)博客 只是按照自己的習慣進行簡單的整理 1、對數(shù)組中的元素去重復 1.第一種方法:開辟新的內(nèi)存...
    Kk太陽閱讀 5,613評論 0 21
  • 隨身帶上mac與源碼進行學習與介紹 參考:http://www.infocool.net/kb/IOS/20160...
    桃逸閱讀 443評論 0 3
  • 接《iOS知識點大總結(jié)一》 三十四犯助、主線程操作UI(對UI進行更新只能在主線程進行) 解釋:所謂的在主線程更新UI...
    RunningMan_Fly閱讀 1,415評論 0 0
  • iOS需要學習的內(nèi)容 UI 基礎(chǔ)控件: UIButton癣漆、UIImageView、UILable剂买、UIView惠爽、U...
    cuptea閱讀 377評論 1 0
  • 沙城就是一個人的記憶 如果你不往前走 就會被沙子掩埋。 可如果沒有你 我寧愿被沙子掩埋 話雖如此瞬哼, 總有一天 ...
    沛爾豆助閱讀 454評論 0 1