關於iOS開發的一些記錄

這兩天因爲有點事情,重新拿起了一下iOS開發,好久沒碰過了,用起來這種集成開發環境還是XCode用得比較舒服,個人感覺比VS要好一些,當然,VS也挺不錯,只是在win下面程序做得少,沒什麼發言權,至於eclipse,和這兩個比起來,我覺得還是差距挺大的。

自定義UITableViewCell


UITableView估計是iOS最常用的控件了,系統默認的那些式樣早就看膩了,總想弄點新鮮的,而UITableView中最好弄新鮮的就是裏面的Cell了,Cell可以自定義成你喜歡的任何樣子,裏面可以添加你想添加的任何控件。

自定義UITableViewCell分成以下幾步走:

  • 新建一個類,繼承自UITableViewCell,比如叫CustomCell
  • 新建一個EmptyUser Interface,比如叫CustomCell.nib
  • 打開CustomCell.nib,從右邊下面拖入一個UITableViewCell控件進去
  • 在這個控件中放入你想放入的任何控件,比如UILabel,UIBUtton,ImageView等等,隨便放。
  • 選擇UITableViewCell控件,打開右上方的Identity inspector,將class選擇爲CustomCell
  • 選擇UITableViewCell控件,打開右上方的Attributes inspector,將Identity設置爲CustomCellIdentifier
  • 打開CustomCell.h,將你剛剛添加的控件在這裏設置成IBOutlet變量。
  • 將這些變量連接到CustomCell.nib

好了,現在我們的ViewCell就自定義好了,在tableView-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 這個回調方法中,按照普通的Cell進行操作,只要將本來的UITableViewCell改成CustomCell,就可以了。

iOS地圖的簡單操作


iOS地圖雖然升級成蘋果地圖以後遭到不少人的詬病,但是蘋果的API設計一直都很不錯,簡單易懂,並且使用起來很方便,再加上Xcode這個神器,感覺非常棒。

  • 要操作地圖,首先要將MapKit,CoreLocation這兩個framework加入到項目中,然後記得在使用map的文件中import這兩個.h文件

    #import <MapKit/MapKit.h>
    #import <CoreLocation/CoreLocation.h>
    
  • 添加一個MapView用來顯示地圖

    MKMapView           *mapView;
    
  • 初始化MapView並添加到controller的view中,其中,mapType表示是顯示普通視圖還是衛星圖,showUserLocation表示是否顯示當前用戶座標

    mapView = [[MKMapView alloc] initWithFrame:CGRectMake(5, 5, 310, 200)];
    mapView.showsUserLocation = YES;
    mapView.mapType = MKMapTypeStandard;
    [self.view addSubview:mapView];
    
  • 好了,最簡單的地圖使用就這樣,打開以後就會顯示地圖了,當然,這裏還是顯示的世界地圖,如果要定位到某一個區域的話,還需要添加下面的代碼

    CLLocationCoordinate2D coords = CLLocationCoordinate2DMake(39.915352,116.397105);
    float zoomLevel = 0.02;
    MKCoordinateRegion region = MKCoordinateRegionMake(coords,MKCoordinateSpanMake(zoomLevel, zoomLevel));
    [earthquakeMap setRegion:[earthquakeMap regionThatFits:region] animated:YES];
    

這就是地圖的基本使用,當然,要是要添加大頭針什麼的,就需要新建一個類了,然後使用MKMapViewaddAnnotation方法來添加大頭針。

關於Delegate的設計和使用


Objective-C的亮點有很多,豐富的數據結構是之一,但是Delegate,也就是代理,或者說是委託吧,是我接觸obj-C以後才用得多起來的,別的語言也有這個功能,但是obj-C把委託這種設計模式浸透到語言和她的cocoa框架本身去了,到處都使用着Delegate,當你做了一段時間的iOS或者Mac開發以後,會不知不覺的開始使用Delegate,而且你會覺得使用了Delegate的程序看起來更優美,耦合度似乎也更低一些。

關於Delegate的使用,要說的很多,簡單來說,如果事務的邏輯過程類似於以下這個過程,你就可以考慮使用委託了。

A類要B類做一件事情,比如下載一個頁面,由於A不知道B什麼時候能夠完成,所以使用了一個委託,當B完成這個事務以後,會通過委託來調用A類的一個方法,從而A知道B做完了這件事並且獲取到了B應該給他的數據。

聽上去挺繞的,多看看程序就明白了,編程這東西沒什麼捷徑,還是多看代碼才行。

發佈了54 篇原創文章 · 獲贊 16 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章