我回顧我學(xué)習(xí)Android和iOS的經(jīng)歷炼七,發(fā)現(xiàn)那些很有價(jià)值的知識(shí)很多是我模仿習(xí)得的。
怎么模仿布持?開兩個(gè)項(xiàng)目豌拙。比如模仿Jack的朋友圈實(shí)現(xiàn),我看兩行他的代碼题暖,然后在我的項(xiàng)目寫他的代碼按傅。不懂再回去看,懂的話就按照自己的想法寫胧卤,一次性寫多點(diǎn)唯绍。
用這種方法,很深刻地記得學(xué)會(huì)了自己寫Android的下拉刷新瀑布流枝誊,iOS的手寫UI况芒,等等。
Android的下拉刷新那次讓我第一次不用xml直接對(duì)view進(jìn)行控制侧啼,而且懂得了手勢(shì)牛柒。是一次提高。有時(shí)抄著抄著原作者的代碼就恍然大悟了痊乾。有些東西是自己看不出來(lái)的皮壁,無(wú)論怎么思考。因?yàn)榭吹臅r(shí)候忽略了不少東西哪审,看不到重要的東西蛾魄,而打著代碼,用手操作著湿滓,這樣讓人更加投入滴须,讓人時(shí)不時(shí)去想為什么,注意到了更多細(xì)節(jié)叽奥,所以最后理解那個(gè)東西扔水。像我前一篇的視覺(jué)差效果。一開始我是不知道橫著放或豎著放背景圖片會(huì)移動(dòng)的朝氓,后來(lái)仿寫著代碼注意到了不少東西魔市,注意到了不少東西,學(xué)會(huì)了毛玻璃效果的一個(gè)制作方法赵哲。
iOS以前我是用xib很多的待德,手寫代碼試過(guò)幾次都放棄了,模仿朋友圈的項(xiàng)目枫夺,我簡(jiǎn)直就像抄一樣将宪。大部分的除了名字有時(shí)有差別完,其它都一樣。但是我還是注意到了不少手寫代碼重要的東西较坛。像列表cell印蔗,如果高度隨著內(nèi)容變化的話,你要畫它之前先計(jì)算它的高度丑勤。傳給tableview喻鳄。怎么計(jì)算高度咧?一個(gè)方法是用固定的寬度來(lái)算高度确封。這些在抄著代碼的時(shí)候就會(huì)注意到了除呵。
在模仿的時(shí)候,也往往更投入一些爪喘。我看代碼颜曾,容易看著看著就想睡覺(jué)。一是因?yàn)槟X子累秉剑,二是因?yàn)檎麄€(gè)身體都是安靜的泛豪,容易進(jìn)入休息狀態(tài)。我一個(gè)朋友看代碼的時(shí)候侦鹏,會(huì)記一些筆記诡曙。知乎上有人說(shuō)解issue 去看代碼,熟悉項(xiàng)目略水。這些都挺好价卤,總之要參與起來(lái),不能只是看渊涝。當(dāng)然可能有些人光是看慎璧、思考就能持續(xù)很久。
模仿的時(shí)候跨释,和自己創(chuàng)造的時(shí)候胸私,是不一樣的,模仿要容易些鳖谈,因?yàn)槭悄7滤晏郏蟛涣宋覍懸粯拥拇a,照抄即可缆娃。創(chuàng)造的過(guò)程要難不少捷绒。往往模仿他人的App要容易一些,看著人家的布局龄恋,容易計(jì)算frame疙驾。模仿因?yàn)樯晕⑷菀滓恍┬谆铮钥梢猿志靡恍┕稀2粫?huì)因?yàn)樘y而退卻。但是模仿習(xí)得的知識(shí)有時(shí)比創(chuàng)造更多函荣。
模仿显押,讓試錯(cuò)更少扳肛,讓人更快掌握正確知識(shí)。學(xué)習(xí)編程乘碑,可以邊做項(xiàng)目邊查 Google挖息。這樣的話,會(huì)試錯(cuò)很多兽肤,這個(gè)探索一下套腹,那個(gè)探索一下,很多時(shí)候并不是很適合的方法资铡,尤其是初學(xué)的時(shí)候电禀。而且很多時(shí)候的試錯(cuò)是沒(méi)有意義的。有時(shí)候掌握正確的知識(shí)笤休,知道它為什么正確就夠了尖飞。很多時(shí)候,試錯(cuò)的時(shí)候是亂試錯(cuò)店雅,比如html的格式政基,排版不對(duì)了,這個(gè)修改一下闹啦,那個(gè)改一下沮明,改對(duì)了,下次又遇到一樣的問(wèn)題窍奋。模仿的時(shí)候珊擂,因?yàn)檎_的答案就在別人的代碼里,可以去參考一下费变。正確的答案觸手可得摧扇。所以很快地掌握正確的知識(shí)。比如html的格式挚歧,我找一些html的格式的項(xiàng)目來(lái)扛稽,一行一行地照抄人家的代碼,然后邊吵邊想滑负,可能比我自己搗鼓亂搞學(xué)得更快更好在张。
模仿起來(lái)!