優(yōu)秀文檔集錦


二:無限輪播器的實現(xiàn)機理

http://www.bkjia.com/IOSjc/1020086.html

http://m.baidu.com/ssid=93d25194/from=844b/bd_page_type=1/uid=0/pu=usm%400%2Csz%40224_220%2Cta%40iphone___3_601/baiduid=9E560657327BE51D36C6F4A420845F1B/w=0_10_iOS無限輪播器/t=iphone/l=3/tc?ref=www_iphone&lid=17717565245052218499&order=1&vit=osres&tj=www_normal_1_0_10_title&m=8&srd=1&cltj=cloud_title&dict=30&title=iOS開發(fā)UI篇無限輪播%28功能完善%29-文頂頂-博客園&sec=11414&di=30e3560901c57920&bdenc=1&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRAVTL6NH_MJEH5umX0sqdFtXLR0G9f7Rl3rbIwdzZz


八:使用地圖的時候,經(jīng)常使用其什么功能,需要注意些什么?

(1)使用地圖定位的時候需要注意的問題

注意點:使用corelocation框架; 1.plist文件中添加字段(檢索)和代碼授權(quán),保護用戶隱私2.聯(lián)網(wǎng)3.模擬器沒有位置需要自己添加4.切換模擬器才ok

(2)地理與反地理編碼

注意點:使用corelocation框架,地理編碼指地理名轉(zhuǎn)換為經(jīng)緯度,使用geocodeAddressString方法;反地理編碼指經(jīng)緯度轉(zhuǎn)換為地理名,使用reverseGeocodeLocation方法

(3)地圖展示

注意點:使用corelocation,

MapKit框架;注意在info.plist文件中添加兩個字段,既一直允許定位和當使用時添加定位

(4)定位追蹤

注意點:就是一個屬性

(5)自定義大圖針的詳情視圖

注意點:核心思路:創(chuàng)建一個新的大頭針視圖展示在點擊的相同的位置,并且添加這個大頭針視圖到地圖上

(6)劃線功能

注意點:1:在請求對象中封裝起點和終點2:通過代理返回一個”折線渲染器”來決定線的寬度和顏色等信息

九:面向?qū)ο蟮牡娜筇匦?OC的三大特性)

面向?qū)ο蟮娜筇匦?封裝,繼承履恩,多態(tài)

1>封裝:set方法

2>作用:提供一個方法給外界設(shè)置成員變量值灿渴,可以在方法里面對參數(shù)進行相應過濾

3>方法名必須以set開頭

4> set后面跟上成員變量的名稱绑榴,成員變量的首字母必須大寫

5>返回值一定是void

6>一定要接收一個參數(shù),而且參數(shù)類型跟成員變量類型一致

7>形參的名稱不能跟成員變量名一樣

get方法:

1>作用:返回對象內(nèi)部的成員變量

2>肯定有返回值释树,返回值類型肯定與成員變量類型一致

3>方法名跟成員變量名一樣

4>不需要接收任何參數(shù)

繼承:當某個類繼承了父類就擁有了父類的所有成員變量和方法,同時也可以擴充方法,基本上所有的類都繼承NSObject拾碌,同時子類也也可以重寫父類的方法,父類必須聲明在子類的前面街望,子類不能擁有和父類相同的成員變量校翔,調(diào)用某個方法時,優(yōu)先去當前類中找灾前,如果找不到防症,就去父類中找

多態(tài):簡單來說就是父類的指針指向子類對象,但是父類類型的變量不能直接調(diào)用子類特有的方法哎甲。必須強轉(zhuǎn)為子類類型變量后蔫敲,才能直接調(diào)用子類特有的方法

KVO的使用場景

KVO用于監(jiān)聽對象屬性的改變。

1下拉刷新炭玫、下拉加載監(jiān)聽UIScrollView的contentoffsize奈嘿;

2webview混排監(jiān)聽contentsize;

3監(jiān)聽模型屬性實時更新UI吞加;

4監(jiān)聽控制器frame改變裙犹,實現(xiàn)抽屜效果

KVC的使用場景

KVC使用起來比較簡單,但是它如何查找一個屬性進行讀取呢衔憨?具體查找規(guī)則(假設(shè)現(xiàn)在要利用KVC對a進行讀纫镀浴):

1如果是動態(tài)設(shè)置屬性,則優(yōu)先考慮調(diào)用setA方法践图,如果沒有該方法則優(yōu)先考慮搜索成員變量_a,如果仍然不存在則搜索成員變量a掺冠,如果最后仍然沒搜索到則會調(diào)用這個類的setValue:forUndefinedKey:方法(注意搜索過程中不管這些方法、成員變量是私有的還是公共的都能正確設(shè)置)码党;

2如果是動態(tài)讀取屬性德崭,則優(yōu)先考慮調(diào)用a方法(屬性a的getter方法)悍及,如果沒有搜索到則會優(yōu)先搜索成員變量_a,如果仍然不存在則搜索成員變量a接癌,如果最后仍然沒搜索到則會調(diào)用這個類的valueforUndefinedKey:方法(注意搜索過程中不管這些方法心赶、成員變量是私有的還是公共的都能正確讀取);

十一:GCD和nsoperation對比一下

<1>GCD

GCD是iOS4.0推出的缺猛,主要針對多核cpu做了優(yōu)化缨叫,是C語言的技術(shù)

GCD是將任務(wù)(block)添加到隊列(串行/并行/全局/主隊列),并且以同步/異步的方式執(zhí)行任務(wù)的函數(shù),任務(wù)的取出遵循隊列的FIFO原則:先進先出荔燎,后進后出

GCD提供了一些NSOperation不具備的功能

一次性執(zhí)行:可以保證某一段代碼在程序運行的過程中只被執(zhí)行一次;一次性執(zhí)行是線程安全的,在多線程環(huán)境下也是只執(zhí)行一次;應用場景:設(shè)計單例模式

延遲執(zhí)行:既實現(xiàn)等待多長時間后在哪個隊列中執(zhí)行什么代碼塊

調(diào)度組:監(jiān)聽一組異步任務(wù)執(zhí)行結(jié)束之后,我們能夠得到統(tǒng)一的通知;注意:在其調(diào)度組內(nèi)的任務(wù)執(zhí)行完畢后執(zhí)行后面的”刷新主界面”方法與”玩完”之間的執(zhí)行沒有先后順序;例如:dispatch_group_notify(group,dispatch_get_main_queue(), ^{

//更新UI控件耻姥,提示用戶

NSLog(@"刷新主界面");

});

NSLog(@"玩完");

<2>NSOperation

NSOperation是iOS2.0推出的,iOS4.0之后重寫了NSOperation

NSOperation將操作(異步的任務(wù))添加到隊列(并發(fā)隊列)有咨,就會執(zhí)行指定操作的方法

NSOperation里提供的方便的操作

最大并發(fā)數(shù),

隊列的暫定/繼續(xù)

取消隊列中所有的操作

指定操作之間的依賴關(guān)系(GCD可以用同步實現(xiàn),但是比較麻煩)

?同步和異步?jīng)Q定了要不要開啟新的線程(同步不開,異步開)

同步:在當前線程中執(zhí)行任務(wù)琐簇,不具備開啟新線程的能力

異步:在新的線程中執(zhí)行任務(wù),具備開啟新線程的能力

?串行和并發(fā)決定了任務(wù)的執(zhí)行方式

并發(fā):多個任務(wù)并發(fā)(同時)執(zhí)行

串行:一個任務(wù)執(zhí)行完畢后座享,再執(zhí)行下一個任務(wù)

?當任務(wù)是異步的時候,隊列決定了開啟多少條線程

串行隊列:只開一條

并發(fā)隊列:可以開啟多條

?主隊列特點:主隊列中的任務(wù),只有主線程空閑的時候才會調(diào)度任務(wù)執(zhí)行

主隊列又叫全局串行隊列,程序啟動的時候就創(chuàng)建了主隊列,在使用的時候不需要創(chuàng)建,直接GET.主隊列中的任務(wù)是要在主線程執(zhí)行的.

?主隊列婉商,異步任務(wù)

不開線程,同步執(zhí)行

?主隊列渣叛,同步執(zhí)行

程序執(zhí)行不出來(死鎖)

死鎖的原因丈秩,當程序執(zhí)行到下面這段代碼的時候

主隊列:如果主線程正在執(zhí)行代碼,就不調(diào)度任務(wù)

同步執(zhí)行:如果第一個任務(wù)沒有執(zhí)行淳衙,就繼續(xù)等待第一個任務(wù)執(zhí)行完成蘑秽,再執(zhí)行下一個任務(wù)此時互相等待,程序無法往下執(zhí)行(死鎖)

dispatch_sync(dispatch_get_main_queue(),^{

NSLog(@"%@ -- %d",[NSThreadcurrentThread],i);

});

?主隊列和串行隊列的區(qū)別

串行隊列:必須等待一個任務(wù)執(zhí)行完成箫攀,再調(diào)度另一個任務(wù)

主隊列:以先進先出調(diào)度任務(wù)肠牲,如果主線程上有代碼在執(zhí)行,主隊列不會調(diào)度任務(wù)

?(主隊列靴跛,同步執(zhí)行)放入異步執(zhí)行解決死鎖

dispatch_async(dispatch_get_global_queue(0,0), ^{

NSLog(@"全局隊列缀雳,異步執(zhí)行%@",[NSThread currentThread]);

//此時這行代碼在子線程中運行,同步執(zhí)行不用等待主線程執(zhí)行此同步執(zhí)行的任務(wù)

dispatch_sync(dispatch_get_main_queue(), ^{

NSLog(@"主隊列,同步執(zhí)行%@",[NSThread currentThread]);

});

NSLog(@"==");

});

?全局隊列本質(zhì)就是并發(fā)隊列

dispatch_get_global_queue(0,0);

?全局隊列和并發(fā)隊列的區(qū)別

并發(fā)隊列有名稱汤求,可以跟蹤錯誤俏险,全局隊列沒有

全局隊列在ARC中不需要考慮釋放內(nèi)存严拒,dispatch_release(q);不允許調(diào)用扬绪。并發(fā)隊列在MRC中需要手動釋放內(nèi)存,因為并發(fā)隊列是create創(chuàng)建出來的在MRC中見到create就要release裤唠,全局隊列不需要release(只有一個)

一般我們使用全局隊列,因為使用起來更加簡單

<3>綜合比較其各自使用范圍如下

性能:①:GCD更接近底層挤牛,而NSOperationQueue則更高級抽象,所以GCD在追求性能的底層操作來說种蘸,是速度最快的墓赴。這取決于使用Instruments進行代碼性能分析竞膳,如有必要的話

②:從異步操作之間的事務(wù)性,順序行诫硕,依賴關(guān)系坦辟。GCD需要自己寫更多的代碼來實現(xiàn),而NSOperationQueue已經(jīng)內(nèi)建了這些支持

③:如果異步操作的過程需要更多的被交互和UI呈現(xiàn)出來章办,NSOperationQueue會是一個更好的選擇锉走。底層代碼中,任務(wù)之間不太互相依賴藕届,而需要更高的并發(fā)能力挪蹭,GCD則更有優(yōu)勢

十五:OC屬性修飾符

訪問修飾符:用來修飾屬性.可以限定對象的屬性在那1段范圍之中訪問.

?@private:私有被@private修飾的屬性只能在本類的內(nèi)部訪問.只能在本類的方法實現(xiàn)中訪問.

?@protected:受保護的.被@protected修飾的屬性只能在本類和本類的子類中訪問.只能在本類和子類的方法實現(xiàn)中訪問.

?@package:被@package修飾的屬性可以在當前框架中訪問.

@public:公共的.被@public修飾的屬性可以在任意的地方訪問.

十六:重寫,覆蓋,重載,多態(tài)之間的差別

首先注意:

(1)重載概念只出現(xiàn)在java和c++中,在c語言和oc中沒有重載這個概念,重寫和多態(tài)在oc中才有

override->重寫(=覆蓋)、overload->重載休偶、polymorphism

->多態(tài)

(2)override是重寫(覆蓋)了一個方法梁厉,以實現(xiàn)不同的功能。一般是用于子類在繼承父類時踏兜,重寫(重新實現(xiàn))父類中的方法词顾。

重寫(覆蓋)的規(guī)則:

1、重寫方法的參數(shù)列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是重載.

2碱妆、重寫方法的訪問修飾符一定要大于被重寫方法的訪問修飾符(public>protected>default>private)计技。

3、重寫的方法的返回值必須和被重寫的方法的返回一致山橄;

4垮媒、重寫的方法所拋出的異常必須和被重寫方法的所拋出的異常一致,或者是其子類航棱;

5睡雇、被重寫的方法不能為private,否則在其子類中只是新定義了一個方法饮醇,并沒有對其進行重寫它抱。

6、靜態(tài)方法不能被重寫為非靜態(tài)的方法(會編譯出錯)朴艰。

(3)

多態(tài)的概念比較復雜观蓄,有多種意義的多態(tài),一個有趣但不嚴謹?shù)恼f法是:繼承是子類使用父類的方法祠墅,而多態(tài)則是父類使用子類的方法侮穿。

一般,我們使用多態(tài)是為了避免在父類里大量重載引起代碼臃腫且難于維護毁嗦。

overload是重載亲茅,一般是用于在一個類內(nèi)實現(xiàn)若干重載的方法,這些方法的名稱相同而參數(shù)形式不同。

重載的規(guī)則:

1克锣、在使用重載時只能通過相同的方法名茵肃、不同的參數(shù)形式實現(xiàn)。不同的參數(shù)類型可以是不同的參數(shù)類型袭祟,不同的參數(shù)個數(shù)验残,不同的參數(shù)順序(參數(shù)類型必須不一樣);

2巾乳、不能通過訪問權(quán)限胚膊、返回類型、拋出的異常進行重載想鹰;

3紊婉、方法的異常類型和數(shù)目不會對重載造成影響;

十八:.h中的變量外界可以直接訪問么?(注意是變量,不是property)

答:http://www.cnblogs.com/wangerxiansheng/p/4296797.html

方法的創(chuàng)建:

.h聲明文件只定義方法的格式辑舷。并不去實現(xiàn)方法體喻犁。

方法- (void)setAge: (int)age;表示定義一個動態(tài)方法,返回值為void型何缓,方法名是setAge:肢础,參數(shù)類型為int型,參數(shù)名為age碌廓。

注意:在OC中

“-”:動態(tài)方法(對象的方法)传轰;“+”:靜態(tài)方法(類的方法)。

一個參數(shù)一個冒號谷婆,方法名包括冒號(方法名為setAge:)慨蛙。

在.h文件中定義的方法默認都是public類型的,不能更改纪挎。若要定義私有方法期贫,則應該直接在.m文件定義并實現(xiàn)。

OC定義方法時异袄,返回值類型和參數(shù)類型都必須放在括號()里通砍。

定義成員變量:

成員變量的作用域有3種:

@public全局都可訪問;

@protected本類和子類可訪問烤蜕;

@private只有本類可以訪問封孙。

在.h文件中聲明的成員變量默認都是@protected型的。

注意:成員變量是聲明在.h文件中的{}內(nèi)部的讽营。也可以說聲明成員變量時必須用{}包谆⒓伞!

十九:1.什么是arc斑匪?(arc是為了解決什么問題誕生的呐籽?)

首先解釋ARC: automatic reference counting自動引用計數(shù)。

ARC幾個要點:

在對象被創(chuàng)建時retain count +1蚀瘸,在對象被release時retain count -1.當retain count為0時狡蝶,銷毀對象。

程序中加入autoreleasepool的對象會由系統(tǒng)自動加上autorelease方法贮勃,如果該對象引用計數(shù)為0贪惹,則銷毀。

那么ARC是為了解決什么問題誕生的呢寂嘉?這個得追溯到MRC手動內(nèi)存管理時代說起奏瞬。

MRC下內(nèi)存管理的缺點:

1.當我們要釋放一個堆內(nèi)存時,首先要確定指向這個堆空間的指針都被release了泉孩。(避免提前釋放)

2.釋放指針指向的堆空間硼端,首先要確定哪些指針指向同一個堆,這些指針只能釋放一次寓搬。(MRC下即誰創(chuàng)建珍昨,誰釋放,避免重復釋放)

3.模塊化操作時句喷,對象可能被多個模塊創(chuàng)建和使用镣典,不能確定最后由誰去釋放。

4.多線程操作時唾琼,不確定哪個線程最后使用完畢

二十:請解釋以下keywords的區(qū)別:assignvs weak, __block vs __weak?

assign適用于基本數(shù)據(jù)類型兄春,(iOS中的垃圾處理機制是根據(jù)一個對象的索引數(shù)來處理的,為0的時候表示沒有地方使用該對象锡溯,則該對象將被清除赶舆,而基本數(shù)據(jù)類型不屬于對象,它的創(chuàng)建和使用都是在內(nèi)存中祭饭,超出對應方法體即被清除涌乳,所以不需要使用垃圾處理機制,無需記錄索引值甜癞,所以使用assgin);

assign其實也可以用來修飾對象夕晓,那么我們?yōu)槭裁床挥盟兀恳驗楸籥ssign修飾的對象在釋放之后悠咱,指針的地址還是存在的蒸辆,也就是說指針并沒有被置為nil。如果在后續(xù)的內(nèi)存分配中析既,剛好分到了這塊地址躬贡,程序就會崩潰掉。

weak是適用于NSObject對象眼坏,并且是一個弱引用拂玻。而weak修飾的對象在釋放之后,指針地址會被置為nil。所以現(xiàn)在一般弱引用就是用weak檐蚜。

首先__block是用來修飾一個變量魄懂,這個變量就可以在block中被修改(參考block實現(xiàn)原理)

__block:使用__block修飾的變量在block代碼快中會被retain(ARC下,MRC下不會retain)

__weak:使用__weak修飾的變量不會在block代碼塊中被retain

同時闯第,在ARC下市栗,要避免block出現(xiàn)循環(huán)引用__weak typedof(self)weakSelf = self;

二十一:基本數(shù)據(jù)類型與對象有何不同?

行為:

基本類型只是一個值,沒有任何行為

對象類型有自己的行為

內(nèi)存分配:

基本類型在棧內(nèi)分配

對象在堆內(nèi)分配

對象引用保存在棧內(nèi)

引用與值:

基本類型是值類型咳短,僅表示一個值填帽,保存在棧內(nèi)

引用類型分兩部分,對象引用保存在棧內(nèi)咙好,對象保存在堆內(nèi)篡腌,

訪問變量,是使用的引用找對象

二十二:使用nonatomic一定是線程安全的嗎勾效?

不是的哀蘑。

Atomic原子操作,系統(tǒng)會為setter方法加鎖葵第。具體使用@synchronized(self){//code }

nonatomic不會為setter方法加鎖绘迁。

atomic:線程安全,需要消耗大量系統(tǒng)資源來為屬性加鎖

nonatomic:非線程安全卒密,適合內(nèi)存較小的移動設(shè)備

二十三:與后臺進行數(shù)據(jù)交互的時候遇到過什么問題么?

答:報錯3840因為AFN框架不能解析未做處理的json數(shù)據(jù),出現(xiàn)這種情況時缀台,一般是json數(shù)據(jù)中的不規(guī)范造成的,json數(shù)據(jù)中也許有轉(zhuǎn)義字符的出現(xiàn)導致了這種情況哮奇,如有/t/n/0等出現(xiàn),把解析得到的NSData數(shù)據(jù)解析成為字符串形式膛腐,判斷數(shù)據(jù)中是否含有這些轉(zhuǎn)義字符,含有的話用空字符串替換掉鼎俘,再把字符串轉(zhuǎn)換為NSData類型的數(shù)據(jù)哲身,然后進行解析為JSon數(shù)據(jù)

數(shù)據(jù)不太規(guī)范解決方法:1.后臺修改數(shù)據(jù)

報錯404網(wǎng)址有錯誤,連接不到網(wǎng)頁

二十四:簡單談一下你對runtime的理解以及其應用案例

http://www.reibang.com/p/a31edc4400a1

http://www.cocoachina.com/ios/20160406/15733.html

二十五:數(shù)據(jù)轉(zhuǎn)模型礦架MJExtension的理解

http://www.reibang.com/p/93c242452b9b

二十六: 3.UIView與CALayer有什么區(qū)別?

1)UIView屬于UIKit框架贸伐,CALayer屬于QuartzCore框架勘天;

2)CALayer比UIView更加輕量級別,但是可以實現(xiàn)同樣的效果;

3)UIView可以處理用戶的觸摸事件捉邢,而CALayer不可以脯丝;

4)UIView中有個屬性是layer;

5)UIView是視圖界面的元素伏伐,而CALayer是繪制內(nèi)容宠进;

二十七:#import和#include的區(qū)別?@class的作用藐翎?

#import完整的包含某個文件的內(nèi)容材蹬,不會引發(fā)交叉編譯实幕,

#include是C/C++中導入頭文件的關(guān)鍵字,完整的包含某個文件的內(nèi)容堤器,

@class僅僅是聲明一個類名昆庇,可解決循環(huán)包含的問題。

二十八:對于語句NSString *obj =[[NSData alloc] init]; objc在編譯時和運行時分別是什么類型的對象吼旧?

編譯時:NSString凰锡;運行時:NSData未舟。

二十九:核心服務(wù)層(Core Services Layer):為程序提供基礎(chǔ)的系統(tǒng)服務(wù)例如網(wǎng)絡(luò)訪問圈暗、瀏覽器引擎、定位裕膀、文件訪問员串、數(shù)據(jù)庫訪問等,主要包含以下框架:

CFNetwork(網(wǎng)絡(luò)訪問)

Core Data(數(shù)據(jù)存儲)

Core Location(定位功能)

Core Motion(重力加速度昼扛,陀螺儀)

Foundation(基礎(chǔ)功能如NSString)

Webkit(瀏覽器引擎)

JavaScript(JavaScript引擎)

媒體層(Media Layer):主要提供圖像引擎寸齐、音頻引擎、視頻引擎框架抄谐。

圖像引擎(Core Graphics渺鹦、Core Image、Core

Animation蛹含、OpenGL ES)

音頻引擎(Core Audio毅厚、AV

Foundation、OpenAL)

視頻引擎(AV Foundation浦箱、Core Media)

可觸摸層(Cocoa Touch

Layer):主要提供用戶交互相關(guān)的服務(wù)如界面控件吸耿、事件管理、通知中心酷窥、地圖咽安,包含以下框架:

UIKit(界面相關(guān))

EventKit(日歷事件提醒等)

Notification

Center(通知中心)

MapKit(地圖顯示)

Address Book(聯(lián)系人)

iAd(廣告)

Message UI(郵件與SMS顯示)

PushKit(iOS8新push機制)

三十:你是怎么保存用戶的登錄狀態(tài)的,用戶名和密碼你是怎么保存的蓬推?

http://blog.csdn.net/xn4545945/article/details/36755117

加密,解密的過程,公鑰,私鑰是如何使用的

http://www.8btc.com/passwordd/

加密的幾個階段

1:簡單的對用戶名和密碼進行MD5加密<可以用暴力碰撞進行破解,因為相同的字符通過哈希算法得到的值是一樣的>

2:對用戶名和密碼進行先加鹽(既加一段隨機的字符串,也叫token),再進行MD5加密

3:對用戶名和密碼進行先加鹽,然后MD5算法;對得到的數(shù)據(jù)綁定一個時間戳,再用私鑰加密,最后儲存到服務(wù)器上<用時間+公鑰解密與客戶端發(fā)送的密碼進行比較,服務(wù)器還要檢查發(fā)送密碼的時間差>

三十一:iOS開發(fā)——XML/JSON數(shù)據(jù)解析

http://www.reibang.com/p/a54d367adb2a

?Json格式:

NSJSONSerialization妆棒,官方提供的Json數(shù)據(jù)格式解析類(在ios9.0以后,蘋果用NSURLSession的dataTaskWithRequest方法替代了原先的NSURLConnect的sendSynchronousRequest方法來接收網(wǎng)站返回的response響應,切記雖然用起來步驟比較麻煩,但是效率是最高的)

JSONKit(第三方類庫,因為不支持ARC,導入后會報錯,不過在target里面的Build Phases中導入-fno-objc-arc,再次編譯就好了,效率僅此于原生的)

SBJson(拖入文件中不會報錯)

?XML格式:

NSXMLParse,官方自帶(使用的是sax解析,既逐行解析,采用協(xié)議方法進行回調(diào)的方法,輕量級的不好內(nèi)存)

GDataXML沸伏,Google提供的開元XML解析庫(這是一種dom解析方式,一次性將文件整體導入,在通過查找節(jié)點的方式,讀取數(shù)據(jù);)

三十二:網(wǎng)易新聞頭部滾動條的實現(xiàn)過程

http://www.reibang.com/p/b84f4dd96d0c

打算分為三個部分,滑塊部分View,內(nèi)容顯示部分View,包含滑塊View和顯示內(nèi)容View的View,以便于可以靈活的使用

1.滑塊部分View

1.1要實現(xiàn)滑塊可以滾動,考慮可以直接使用collectionView,但是這里還是直接使用scrollView方便里面的控件布局

1.2要實現(xiàn)滑塊的點擊,可以直接使用UIButton,但是經(jīng)過嘗試,要讓button的frame隨著文字的寬度來自適應實現(xiàn)比較麻煩,所以選擇了使用UILabel添加點擊手勢來實現(xiàn)點擊事件,這里使用了closures來實現(xiàn)(可以使用代理模式)

1.3實現(xiàn)對應的滾動條和遮蓋同步移動的效果,文字顏色漸變功能(在點擊的時候直接使用一個動畫就可以簡單的完成了)

2.內(nèi)容顯示部分View

2.1用來作為包含子控制器的view的容器,并且實現(xiàn)可以分頁滾動的效果

2.2要實現(xiàn)分頁滾動,可以使用UIScrollView來實現(xiàn),但是這樣就要考慮UIScrollView上的各個view的復用的問題,其中細節(jié)還是很麻煩,所以直接使用了UICollectionView(利用他的重用機制)來實現(xiàn)

2.3將每一個子控制器的view直接添加到對應的每一個cell的contentView中來展示,所以這里需要注意cell重用可能帶來的內(nèi)容顯示不正常的問題,這里采用了每次添加contentView的內(nèi)容時移除所有的subviews(也可以直接給每個cell用不同的reuseIdentifier實現(xiàn))

2.4實現(xiàn)實時監(jiān)控滾動的進度提供給滑塊部分來同步調(diào)整滾動條和遮蓋,文字顏色的漸變,并且在每次滾動完成的時候可以通知給滑塊來調(diào)整他的內(nèi)容

3.包含滑塊View和顯示內(nèi)容View的View

3.1因為滑塊部分View和內(nèi)容顯示部分View是相對獨立的部分,在這里只需要實現(xiàn)兩者的通信即可

3.2可以自定義滑塊部分View和內(nèi)容顯示部分View的frame

三十三:XMPP通訊協(xié)議

http://www.reibang.com/p/3167802eb1e5

即時通訊之環(huán)信的應用

http://www.reibang.com/p/73be68baa1ac


三十五:檢測內(nèi)存泄露的小工具

http://www.cocoachina.com/ios/20160329/15803.html

監(jiān)測內(nèi)存泄露的小工具:

block長什么樣募逞?它大概長這樣子:一個^后面有{和},介于此我們就能查到幾乎所有代碼里面的block了馋评,那么block里面的self怎么識別放接?weakSelf算嗎,當然不算留特,按照語法:如果一個self字段它的前后都不是字母數(shù)字下劃線(好好理解下這句話)纠脾,那它就是我們要找的self玛瘸。按著這個思路block里面的self便無所遁形了。然后按著如下寫腳本(代碼在文末):

(1)遍歷工程里面的所有.m文件

(2)查找^

(3)匹配后面的一對{}記住位置

(4)查找{}里面符合規(guī)則的self

運行xcode自帶的shell腳本

三十六:iOS上傳數(shù)據(jù)到服務(wù)器

http://www.reibang.com/p/e1d59ab0bf1a

結(jié)合上面兩個方法可知,上傳平常的數(shù)據(jù)和上傳圖片不一樣的地方就是下面這兩行代碼了,就是在發(fā)送POST請求時,請求頭里面記錄著要上傳的是圖片還是一般的數(shù)據(jù).

上傳一般的數(shù)據(jù):

[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

[request addValue:@"application/json" forHTTPHeaderField:@"Accept"];

上傳圖片:

[request addValue:@"image/jpeg" forHTTPHeaderField:@"Content-Type"]; [request addValue:@"text/html" forHTTPHeaderField:@"Accept"];

深入解析POST上傳-->AFNetworking的底層理解


http://www.cnblogs.com/worldtraveler/p/4736643.html

http://www.reibang.com/p/2b75932d2f92

為何使用AFNetworking

http://wenku.baidu.com/link?url=-N8GZ6NSFzQILWkuvU_4v7LG6ya-eWX_XpGz_EYo282EE7r3f4u3WUS2FQlPxqHo6S1nBH0Y7rTQsjeyIzLeG1jYIvHiuZBCtC-WOZn-nRq

四十:控制器之間跳轉(zhuǎn)的幾種方法

http://www.mamicode.com/info-detail-469709.html

四十一:保存用戶名和密碼

http://blog.sina.com.cn/s/blog_71715bf801018v33.html

四十三:在ARC機制下利用leaks查找內(nèi)存泄露

http://www.reibang.com/p/f3d130ff807b

四十四:多線程的幾種表達方式

http://www.reibang.com/p/054723d94f9d

四十五:const char*, char const*, char*const的區(qū)別

http://blog.csdn.net/yingxunren/article/details/3968800

四十七:正則表達式(初級學習)

http://www.reibang.com/p/d332e9fe33f3

自定義iOS7導航欄背景,標題和返回按鈕文字顏色

http://www.reibang.com/p/99e26ecb1bb0?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=qq

四十九:iOS 繪制1像素的線

http://www.cnblogs.com/smileEvday/p/iOS_PixelVsPoint.html

五十:Label用法總結(jié)

http://blog.sina.com.cn/s/blog_bf9843bf0101f7z7.html

#五十二:iOS自定義 中間凸出的 tabbar 仿閑魚

http://www.reibang.com/p/d905387797c6

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苟蹈,一起剝皮案震驚了整個濱河市糊渊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慧脱,老刑警劉巖渺绒,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異菱鸥,居然都是意外死亡宗兼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門氮采,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殷绍,“玉大人,你說我怎么就攤上這事鹊漠≈鞯剑” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵躯概,是天一觀的道長登钥。 經(jīng)常有香客問我,道長娶靡,這世上最難降的妖魔是什么牧牢? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮固蛾,結(jié)果婚禮上结执,老公的妹妹穿的比我還像新娘。我一直安慰自己艾凯,他們只是感情好献幔,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趾诗,像睡著了一般蜡感。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恃泪,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天郑兴,我揣著相機與錄音,去河邊找鬼贝乎。 笑死情连,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的览效。 我是一名探鬼主播却舀,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼虫几,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挽拔?” 一聲冷哼從身側(cè)響起辆脸,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤螃诅,失蹤者是張志新(化名)和其女友劉穎啡氢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體术裸,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡倘是,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了穗椅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辨绊。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡奶栖,死狀恐怖匹表,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宣鄙,我是刑警寧澤袍镀,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站冻晤,受9級特大地震影響苇羡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鼻弧,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一设江、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧攘轩,春花似錦叉存、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至笨篷,卻和暖如春瞳秽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背率翅。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工练俐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冕臭。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓腺晾,卻偏偏與公主長得像瓢棒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子丘喻,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,079評論 25 707
  • 1. 從這次課程中你學到最重要的3點是什么脯宿?請用自己的語言重新闡述一下 (1)社交貨幣,這是在整個媒體傳播中關(guān)鍵的...
    小H小H閱讀 396評論 0 1
  • 悠悠的舞蹈之旅已經(jīng)一年了泉粉,她樂在其中连霉。今天是暑假舞蹈課的第一天。我們不畏酷暑步行來到學校嗡靡,路上悠悠一點也沒叫...
    枝枝Rena閱讀 269評論 0 3
  • 與帽峰山結(jié)緣跺撼,是從釣魚開始的。 雖然第一次去帽峰山鬧了個笑話讨彼,喝了很多的未經(jīng)消毒處理的"山泉水"歉井。鬧了肚子...
    特洛伊人閱讀 2,289評論 0 1
  • 其實在我寫下目錄二字時,我還沒打算把它寫成長篇哈误,因為之前凡是我打算寫成長篇的文哩至,后來都沒了后來。先給《貓九》定一...
    雨涼城閱讀 415評論 2 1