iPhone開發應用點滴學習
iPhone開發點滴是本文要介紹的內容,主要介紹的是iphone開發中常用的一些小實例,在這作為一個小備忘來學習。先來看詳細內容。
iPhone中圖片的拉伸/圓角處理(Image round corner, aspect fit)
圖片圓角 image round corner:
- m_mainImgView.layer.cornerRadius = 6;
- m_mainImgView.layer.masksToBounds = YES;
自動適應,保持圖片寬高比 aspect fit:
- m_mainImgView.contentMode = UIViewContentModeScaleAspectFit;
圖片拉伸 iphone
- UIImage *btnImage = [UIImage imageNamed:@"btn_normal"];
- CGFloat capWidth = btnImage.size.width / 2;
- CGFloat capHeight = btnImage.size.height / 2;
- btnImage = [btnImage stretchableImageWithLeftCapWidth:capWidth topCapHeight:capHeight];
類型轉換將NSString 轉 NSdata
- NSString* str= @"teststring";NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
由init、loadView、viewDidLoad、viewDidUnload、dealloc的關系說起
init方法
在init方法中實例化必要的對象(遵從LazyLoad思想)
init方法中初始化ViewController本身
loadView方法
當view需要被展示而它卻是nil時,viewController會調用該方法。不要直接調用該方法。
如果手工維護views,必須重載重寫該方 法
如果使用IB維護views,必須不能重載重 寫該方法
loadView和IB構建view
viewDidLoad方法
重載重寫該方法以進一步定制view
在iPhone OS 3.0及之后的版本中,還應該重載重寫viewDidUnload來釋放對view的任何索引
viewDidLoad后調用數據Model
viewDidUnload方法
當系統內存吃緊的時候會調用該方法(注:viewController沒有被dealloc)
內存吃緊時,在iPhone OS 3.0之前didReceiveMemoryWarning是釋放無用內存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方式
在該方法中將所有IBOutlet(無論是property還是實例變量)置為nil(系統release view時已經將其release掉了)
在該方法中釋放其他與view有關的對象、其他在運行時創建(但非系統必須)的對象、在viewDidLoad中被創建的對象、緩存數據等
release對象后,將對象置為nil(IBOutlet只需要將其置為nil,系統release view時已經將其release掉了)
一般認為viewDidUnload是viewDidLoad的鏡像,因為當view被重新請求時,viewDidLoad還會重新被執行
viewDidUnload中被release的對象必須是很容易被重新創建的對象(比如在viewDidLoad或其他方法中創建的對象),不要release用戶數據或其他很難被重新創建的對象
dealloc方法
viewDidUnload和dealloc方法沒有關聯,dealloc還是繼續做它該做的事情
舉例: lyttzx.com
- - (void)viewDidUnload { lyttzx.com
- self.startButton = nil;
- [setupViewController release];
- setupViewController = nil;
- } copyright lyttzx.com
- - (void)dealloc {
- [startButton release]; copyright lyttzx.com
- [setupViewController release]; 泠云工作室
- [super dealloc];
- }
- [super dealloc];
- }
默認release view的方法是didReceiveMemoryWarning,這個方法會檢測能否安全的release這個控制器的view,如果可以安全 release view的時候,releae之,然后才會去調用viewDidUnload。
如果當前顯示的控制器收到了memory warning,調用didReceiveMemoryWarning,但這時并不能release 當前控制器的view,所以就不會調用viewDidUnload了。
小結:iPhone應用開發點滴學習的內容介紹完了,希望通過本文的學習對你有所幫助,你也可以作為備忘去學習!