仿網(wǎng)易彩票思路
來源:程序員人生 發(fā)布時間:2014-12-17 08:39:26 閱讀次數(shù):3276次
仿網(wǎng)易彩票思路
第1步、 項目的配置
1>
新建項目:項目前綴:把項目名稱里面的大寫抽出來。
2>
支持項目部署,支持ios6,ios7
3>
不支持橫豎屏
4>
導入圖標和啟動圖片
5>
程序啟動的時候,隱藏狀態(tài)欄,ios6需要恢復狀態(tài)欄顯示
6>
設置狀態(tài)欄色彩 ios7默許狀態(tài)欄交給控制器管理,修改info.plist文件,讓狀態(tài)欄交給application管理
6>
項目文件夾按模塊劃分,Main:(主框架,自定義tab控制器),Other:寄存其他頭文件和.m文件(main,代理,pch(頭文件))
第2步、 搭建項目主框架
1>
修改窗口的根控制器。
緣由:主窗口的根控制器是TabBar控制器,TabBar里面的子控制器是導航控制器?為何,由于每一個導航條的標題不1樣。
第3步、設置tabBar上按鈕的圖片
存在的問題:
1>
設置tabBar上面的按鈕圖片不好使,tabBarButton的圖片有規(guī)格,用不了。
解決方式:
1>
自定義tabBar,系統(tǒng)自帶的tabBar上的tabBarButton都不好使,自定義的tabBar添加UIButton,注意繼承UIView,由于UITabBar里面的子控件根本用不上。
2>
自定義tabBar,添加5個按鈕,顯示圖片
存在的問題?
1> tabBar里面的按鈕應當由控制器決定
2> push控制器的時候底部條,隱藏不了。
解決方法:
1> 提供1個方法,給控制器添加按鈕。系統(tǒng)自帶的tabBar里有多少按鈕也是根據(jù)控制器個數(shù)決定的。
2> 把自定義tabBar添加到系統(tǒng)自帶的tabBar上
第4步、點擊按鈕,切換控制器(UITabBarController.selectedIndex)
存在的問題?
1>
只有UITabBarController設置selectedIndex才可以切換控制器,但是UITabBarController不知道當前選中哪一個按鈕
解決方式:
2>
用代理或block把角標傳給控制器
第5步、設置導航條的外觀(背景圖片和文字),只需要設置1次.
1>
為何要獲得全部利用程序的導航條外觀?避免拿到1個1個導航控制器去設置導航條的外觀
2>
怎樣獲得?UINavigationBar *navBar = [UINavigationBar appearance]
只要遵照UIAppearance這個協(xié)議,都可以這樣獲得。
3>
設置導航條的背景色彩?ios7和ios6是不1樣的。
4>
運行ios6,適配ios6的導航條。
5> ios7和ios6導航條圖片的區(qū)分?
ios7:控制器包括狀態(tài)欄20的高度,導航條的高度為64,會自動把狀態(tài)欄20的高度填充
ios6:狀態(tài)欄20的高度不屬于控制器,導航條高度44。用44高度的圖片
6>
定義宏,方便適配 #define iOS7 ([[UIDevice currentDevice].systemVersion floatValue] >=
7.0)
7>
設置導航條文字色彩
第6步、自定義導航控制器
1>
為何要自定義導航控制器?攔截push操作,重寫push方法,在push的時候,隱藏底部條,就不需要1個控制器1個控制器的勾選Hide
Bottom Bar on Push
2>
在自定義導航控制器設置導航條外觀
3>
在initialize里設置:導航條外觀只需要設置1次
4> initialize:在第1次使用這個類或子類的時候調用
5> initialize里判斷下是不是是本類調用,是才需要設置導航條,保證設置1次主題。self
== [ILNavgationController class]
第7步、 完成每一個模塊的導航條
購彩大廳:系統(tǒng)自帶的UIBarButton不能同時設置圖片和文字,拖1個按鈕同時設置文字和圖片,還需要設置按鈕寬度,資訊和圖片中間有間距。
//
設置按鈕標題的位置
- (CGRect)titleRectForContentRect:(CGRect)contentRect;
//
設置按鈕圖片的位置
- (CGRect)imageRectForContentRect:(CGRect)contentRect;
合買跟單:titleView需要自定義按鈕,設置內部的位置
第8步、自定義按鈕:修改內部子控件的尺寸
1.獲得當前文字:self.currentTitle
2.獲得當前文字尺寸.計算內部Label的尺寸。
3.圖片尺寸:假定圖片寬度30.
w = contentRect.size.width -
30
注意點:
* titleRectForContentRect內部不能調用self.titleLabel,會造成死循環(huán)。由于self.titleLabel內部會調用titleRectForContentRect
* boundingRectWithSize在ios7才有,ios6沒有這個方法,需要判斷使用。
第9步、 自定義按鈕尺寸計算-多版本處理
1>
理解編譯時報錯和運行時報錯?#import <Availability.h>
2>
運行時報錯:在SDK7.0的環(huán)境(xcode5)編譯boundingRectWithSize,是不會報錯的,但是運行在ios6的系統(tǒng)上會報錯,ios6沒有這個方法。需要判斷當前運行在哪一個系統(tǒng),用ios7宏判斷。
3>
編譯時報錯:在SDK6.0的環(huán)境(xcode4.6)編譯boundingRectWithSize,是直接報編譯毛病,由于sdk6.0沒有這個方法。
第10步、 我的彩票(登錄界面)-ios7和ios6簡單適配
存在問題
1>
視察UIImageView的y值
1> UIImageView的y值在ios6和ios7不1樣。
緣由:
0> ios6,ios7控制器view的尺寸不1樣。
1> ios6里主流框架中,導航控制器的根控制器view的尺寸,很小。PPT演示,ios6控制器從導航條開始,ios7從屏幕左上角開始,包括狀態(tài)欄。
2> ios7多了1個edgesForExtendedLayout屬性,才讓導航控制器的根控制器view的尺寸和屏幕1樣大.
3> edgesForExtendedLayout可讓控制器上下左右擴大
解決:
1>
通過代碼判斷下,調劑在ios7和ios6的UIImageView的位置,這類方式麻煩。由于界面是固定的,用xib或storyboard描寫更省時間。
2>
找到我的彩票控制器,告知他不要上下擴大就行了,找到Extend Edages,把Under Top Bars
和
Under Bottom Bars取消選中
2>
1般開發(fā)中,如果不需要轉動的控制器,就不需要擴大,由于不需要有穿透效果。
3>
在ios7取消我的彩票控制器的上下擴大。這時候候ios7導航控制器的根控制器view的尺寸就和ios61樣的了。
4> autolayout解決運行在3.5上圖片被壓扁。
13>
登錄按鈕圖片拉伸(按鈕尺寸:300
*
40)
1>
拉伸圖片中間1個像素點。
2>
通過storyboard只能拉伸UIImageView
3> storyboard中
x:表示左側多少不拉伸
y:表示上邊多少不拉伸
w:表示寬度拉伸多少個像素
h:表示高度拉伸多少個像素
x:0.5(左側1半不拉伸)
y:0.5(頂部1半不拉伸)
w:0
(寬度拉伸1個像素) h:0(高度拉伸1個像素)
4>
拉伸按鈕,必須通過代碼。
5>
自定義登錄控制器loginController
6> UIImage抽分類resizableImageWithName
14>
我的彩票(右上角設置按鈕的色彩和返回按鈕的色彩默許是藍色,需要設置為白色)
1>
利用程序所有導航條上的UIBarButton都需要設置白色的。
2> UIBarButton在導航條上,所以我們設置導航條的主題色彩就行了。
3>
獲得全部利用程序的外觀設置主題色彩
UINavigationBar setTintColor(主題色彩)
3>
只需要設置1次,并且跟導航控制器有關系,在導航控制器里的initialize里設置,并且之前在導航控制器拿到了全部利用程序的導航條
15>
設置ios6上利用程序所有導航條上的按鈕背景
1>
導航條白色主題只有在ios7才需要設置。
2>
設置導航條上的UIBarButton背景,只有在ios6才需要設置
3> UIBarButton由UIBarButtonItem決定。
4>
獲得全部利用程序的UIBarButtonItem,設置全部利用程序的UIBarButton。避免1個控制器1個控制器的設置
5> UIBarButtonItem setBackgroundImage
//
設置按鈕背景
6> UIBarButtonItem setBackButtonBackgroundImage
//
設置返回按鈕背景
/*
彩票第2天
*/
1>
搭建設置界面分析
1>
靜態(tài)單元格:1個cell1個cell的改,太麻煩,而且不靈活
生活不易,碼農辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈