iPhone開發(fā)備忘學(xué)習(xí)筆記
iPhone開發(fā)備忘學(xué)習(xí)筆記是本文要介紹的內(nèi)容,主要集合了iphone開發(fā)中幾個案例的實現(xiàn),來看本文詳細(xì)內(nèi)容介紹。
1、IOS開發(fā)中關(guān)于KMapView自定義calloutM
在做ios上面的的地圖應(yīng)用的時候,有些時候需要自定義callout,找了很久,在國外網(wǎng)站上找到了一篇文章,講的就是自定義callout,網(wǎng)址:http://blog.asolutions.com/2010/09/building-custom-map-annotation-callouts-part-1/,但是這篇講的有點復(fù)雜,新手不太容易看懂,并且有些時候我們不需要這么復(fù)雜的實現(xiàn),下面我就講一下原理。
其實說的是自定義callout,其實是通過兩個annotations來實現(xiàn)的,假設(shè)我們在地圖上面放置一個A,我們可以在相應(yīng)選擇A之后在插上一個B,是B的偏移位置剛剛好在A的上面,就形成了callout的效果。
主要是要實現(xiàn)地圖的兩個代理方法:
- mapView:didSelectAnnotationView:
- mapView:didDeselectAnnotationView:
在***個代理方法中中插入B,在第二個方法中移除B。大概自定義的callout就是這樣實現(xiàn)的,有時間的話自己寫一個~~
2、iphone開發(fā)利用宏來確定是在仿真器或者真機中運行
- #if TARGETIPHONE_SIMULATOR
- #endif
- #if !(TARGET_IPHONE_SIMULATOR)
- #endif
當(dāng)在仿真器中的時候會編譯1中的代碼。當(dāng)在真機當(dāng)中時會編譯2中的代碼。
3、iphone應(yīng)用開發(fā)中關(guān)于Nib文件總結(jié)
剖析一個nib file。
當(dāng)在運行時加載一個nib 文件,我們得到的只是此nib file的一個復(fù)制品。nib load代碼會實例化對象,配置他們,并建立你在IB中建立的連接。
interface對象:包括可視的和不可視的??梢暤囊话闶且恍﹙iew window之類的。不可視的是一些view controller之類的。
一個nib 文件最重要的一個對象就是Files owner對象。和其他的不同,F(xiàn)iles owner對象是一個代理對象,當(dāng)nib file加載的時候其不會創(chuàng)建,相反,在代碼中創(chuàng)建此對象,并將其傳遞給nib load 代碼。此對象之所以重要是因為他連接了應(yīng)用程序代碼和nib file的內(nèi)容。
Frist Responder是一個代理對象表示應(yīng)用程序動態(tài)相應(yīng)鏈的***個對象。因為一個應(yīng)用程序的相應(yīng)鏈在設(shè)計的時候是不能確定的。當(dāng)從一個nib file加載到內(nèi)存中,我不能什么都不用做對于First Responder。 AppKit and UIKit frameworks 會根據(jù)應(yīng)用程序當(dāng)前的配置自動的設(shè)置和管理the first responder。
4、iphone開發(fā)----獲得其他ipa程序的圖片資源(從ipa中提取png資源)
在我們開發(fā)的過程中,有些時候會覺得別人的寫得程序有些圖片資源比較好,想拿來用用,但是當(dāng)我們把ipa解壓之后是不能看png資源的,因為apple再把ipa打包打包之前會將png資源以一種特殊的格式存儲,所以如果想要看ipa的png圖片,就要轉(zhuǎn)換了,詳細(xì)的解釋請看iPhone PNG Images Normalizer Python。本文只講方法,要用到一個python轉(zhuǎn)換腳本。
使用很簡單,把ipin.py腳本復(fù)制到解壓的ipa程序的目錄下,在命令行切換到你解壓的ipa程序的目錄下運行python ipin.py就可以了,這樣所以的png將被轉(zhuǎn)換成通常的png格式,就能看到了。
python腳本下載地址:http://u.115.com/file/aq2hi65i
小結(jié):iPhone開發(fā)備忘學(xué)習(xí)筆記的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!