標籤:ui 應用 ios 記憶體 源碼
話不多說 先上效果
項目源碼素材: Tom貓遊戲代碼iOS 素材http://blog.csdn.net/u013357243/article/details/44457357
曾經風靡一時的tom貓其實製作起來那是叫一個相當的easy啊
功能全部實現,(關鍵是素材,沒有素材的可以加我)
新手也可以很快的完成tom這個很拉轟的ios應用哦
做過android的我表示,android黨默哀下把,那個做起來真心痛苦。。。。
然後呢你需要準備這些素材。。。
拖拽控制項吧,因為這一個項目用到的不是很多,用代碼寫太累了,得不償失,大家有興趣的可以自己謝謝純程式碼做ui的練習哦不會的可以參考我的前面一篇
貓貓學IOS(三)UI之純程式碼實現UI——圖片查看器
拖拽控制項,那些東西呢 看圖片吧
就是這些東西,那個名字的地方在代碼中又妙用
另外UIButton的tag屬性也被添加了奇妙的數字
如果不會拖拽控制項的可以看 貓貓學IOS(一)UI之Hello World與加法計算機
下面上代碼
代碼
//調用button監聽方法-(IBAction)tomAction:(UIButton *)button{ [self tomAnimationWithName:button.currentTitle count:button.tag];}//讓tom貓動起來,name是要執行動作的名字 count是圖片的個數-(void) tomAnimationWithName:(NSString *) name count:(NSInteger) count{ //如果動畫現正播放就返回不執行 if (self.tom.isAnimating) { return; } //序列幀動畫 播放一組圖片 //指定動畫圖片的數組 NSMutableArray *arrayM = [NSMutableArray array]; //添加動畫播放的素材 for (int i = 0; i<count; i++) { NSString *imageName = [NSString stringWithFormat:@"%@_%02d.jpg",name,i];// UIImage *image = [UIImage imageNamed:imageName];// 得到全路徑名字 NSString *path = [[NSBundle mainBundle] pathForResource:imageName ofType:nil]; UIImage *image = [UIImage imageWithContentsOfFile:path]; arrayM[i] = image; }; //把操作好的UIImage圖片放到UIImageView的animationImages當中 把圖片數組放Tom控制項中 self.tom.animationImages = arrayM; //設定執行一次 [self.tom setAnimationRepeatCount:1]; //設定執行時間 self.tom.animationDuration = arrayM.count * 0.075; //開始執行動畫 [self.tom startAnimating]; //結束動畫後,清理動畫數組 [self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.tom.animationDuration];}
這裡就是我們要用到的代碼了,記得要給弄好的代碼前面的圈圈連到ui上面,否則點不點都沒用的
你敢相信嗎,tom貓就這麼幾行代碼就完成了,不到一個螢幕,大多數還是注釋。
說說應該注意的地方吧
這裡面記憶體管理特別重要,我們並沒有用ios建議 我們用的
[UIImage imageNamed:name];
而是用了:
[UIImage imageWithContentsOfFile:path];
因為這樣我們可以更完美的釋放記憶體
記憶體在ios中相當重要,客戶體驗一直是蘋果提醒的(據說android5.0還是5.1又漏了。。。其實安卓真的不錯,我沒有黑android的意思哦,只是希望android能更加茁壯的成長,更加完善。)
重構_映像的執行個體化
重構–抽取代碼
方法:
1> 將重複代碼複製到新的方法中
2> 根據需要調整參數
關於映像的執行個體化
imageNamed:系統推薦使用的,但是映像執行個體化之後的釋放由系統負責
如果要自己釋放圖片,不能使用imageNamed方法!
而需要使用imageWithContentsOfFile
提示:如果放在Images.xcassets中的圖片,不能使用imageWithContentsOfFile
Images.xcassets中不要 存放大的,不常用的圖片
PS1.需要學習資料的可以加我 znycat(標註從哪看到的,學習資料都免費,包括視頻,ppt,項目,項目素材。。。。。) 。————我就是太多學不完了,想找幾個人陪我一起糾結。歡迎大家來交流。
貓貓學IOS(四)UI之半小時搞定Tom貓