18-項(xiàng)目實(shí)戰(zhàn)(彩票01)

微博動畫的實(shí)現(xiàn)

  • 通過代碼加載storyboard的步驟

    1. 注意:通過storyboard啟動,根控制器的view并不會在程序啟動完成的時候(調(diào)用didFinishLaunching方法)添加到窗口
    • 創(chuàng)建和UIScreen同樣大小的窗口
    • 加載storyboard,并創(chuàng)建窗口的根控制器
    • 顯示窗口:[self.window makeKeyAndVisible];
    • 顯示歡迎界面的view,一定要給界面設(shè)置frame,否則界面不會顯示
    • 將歡迎界面的view作為子控件添加到窗口上去
  • 在Main.storyboard對應(yīng)的控制器中初始化模型對象和模型對應(yīng)的控制器,并以modal的形式展示出來

  • 為按鈕添加動畫效果的步驟

    1. 懶加載所有按鈕的數(shù)組itemButtons
    • 在viewDidLoad方法中使用setUpAllBtns添加所有item按鈕
    • 在setUpAllBtns中根據(jù)按鈕數(shù)組對item按鈕進(jìn)行布局
    • 啟動定時器,每隔一段時間讓一個按鈕做物理引擎動畫,也就是消除btn的transform
  • 歡迎界面的動畫

    • 動畫效果:文字圖片慢慢消失,通過修改alpha值,顯示用戶頭像并添加上移動畫,有彈簧效果,慢慢顯示歡迎回來的文字,通過修改alpha值
    • 在didMoveToSuperview方法中添加動畫,當(dāng)一個控件被添加到父控件時就會調(diào)用
  • 自定義button

    • 以后如果通過代碼設(shè)置子控件的位置,一般都是在layoutSubviews里面去寫
    • layoutSubviews什么時候調(diào)用:只要父控件的frame一改變就會調(diào)用layoutSubviews,重新布局子控件

58同城引導(dǎo)頁的動畫

  • 核心:添加scrollView的代理,在scrollViewDidScroll方法中根據(jù)偏移量,切換人物的圖片以及旋轉(zhuǎn)小太陽

彩票項(xiàng)目 - 環(huán)境配置

  • 模擬器和真機(jī)的尺寸跟啟動圖片有關(guān)系

  • 通過代碼創(chuàng)建窗口并顯示窗口的步驟

    1. 創(chuàng)建窗口
    • 創(chuàng)建窗口的根控制器并添加到窗口
    • 顯示窗口
  • 劃分文件結(jié)構(gòu)

  • 注意:UITabBarController控制器的view不是懶加載的,在創(chuàng)建控制器的時候就會加載

彩票項(xiàng)目 - 自定義tabBar控制器

  • 使用items數(shù)組保存所有控制器對應(yīng)按鈕的內(nèi)容(UITabBarItem),并進(jìn)行懶加載

  • 在viewDidLoad方法中添加所有子控制器和自定義的tabBar

  • 添加自定義的TabBar需要移除系統(tǒng)的TabBar,相當(dāng)于把TabBar上所有的按鈕移除,把一個控件移除父控件并不會馬上銷毀,一般是在下一次運(yùn)行循環(huán)的時候,就會判斷這個對象有沒有強(qiáng)引用,如果沒有,才會銷毀

  • 我們自己的TabBar的按鈕也需要模型,UITabBar上的按鈕交給UITabBarItem

項(xiàng)目實(shí)戰(zhàn) - 自定義導(dǎo)航控制器

  • load方法會在加載類的時候調(diào)用,當(dāng)程序一啟動的時候就會調(diào)用

  • initialize方法會在當(dāng)前類或者它的子類第一次使用的時候才會調(diào)用,可以在該方法中設(shè)置導(dǎo)航條的內(nèi)容

  • 通過[UINavigationBar apperance]方法獲取當(dāng)前應(yīng)用下所有的導(dǎo)航條

  • 通過[UINavigationBar apperanceWhenContainedIn:]方法獲取哪個類下面的導(dǎo)航條

  • 在TabBar控制器添加子控制器的方法中,把控制器包裝成導(dǎo)航控制器

  • 如果要設(shè)置背景圖片,必須填UIBarMetricsDefault,默認(rèn)導(dǎo)航控制器的子控制器的view尺寸會變化

  • 設(shè)置導(dǎo)航條背景圖片,一定要在導(dǎo)航條顯示之前設(shè)置,需要在initialize方法中設(shè)置導(dǎo)航條的背景圖片

彩票項(xiàng)目 - 設(shè)置導(dǎo)航條內(nèi)容

  • 設(shè)置導(dǎo)航條標(biāo)題顏色
    // 設(shè)置導(dǎo)航條標(biāo)題顏色
    NSMutableDictionary *titleAttr = [NSMutableDictionary dictionary];
    titleAttr[NSForegroundColorAttributeName] = [UIColor whiteColor];
    titleAttr[NSFontAttributeName] = [UIFont boldSystemFontOfSize:20];
    [bar setTitleTextAttributes:titleAttr];
  • 要設(shè)置導(dǎo)航條的內(nèi)容,需要在每個TabBarItem對應(yīng)的控制器中單獨(dú)設(shè)置

  • 購彩大廳導(dǎo)航條的內(nèi)容設(shè)置

    // 左邊按鈕
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageWithOriRenderingImage:@"CS50_activity_image"] style:UIBarButtonItemStylePlain target:self action:@selector(active)];
  • 我的彩票導(dǎo)航條的內(nèi)容設(shè)置
- (void)setUpNav
{
    // 設(shè)置左右兩邊的按鈕
    
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    
    [btn setTitle:@"客服" forState:UIControlStateNormal];
    
    [btn setImage:[UIImage imageNamed:@"FBMM_Barbutton"] forState:UIControlStateNormal];
    
    // 自適應(yīng)尺寸
    [btn sizeToFit];
    
    UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
    
    // 左邊
    self.navigationItem.leftBarButtonItem = leftItem;
    
    // 右邊
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageWithOriRenderingImage:@"Mylottery_config"] style:UIBarButtonItemStylePlain target:self action:@selector(settting)];
}
  • 注意:導(dǎo)航條的標(biāo)題可以封裝到TabBarItem中,因?yàn)槊恳粋€TabBarItem對應(yīng)一個控制器
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,246評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,420評論 25 708
  • 百里紅楓染秋霜 煙籠寒山殘酒香 遙聽鶯鷺鳴空澗 一山秋色入清觴
    隱一而隱閱讀 296評論 6 1
  • 記不清有多少個這樣的夜晚,凌晨一點(diǎn)多夜奶,只記得這是第一次因小腹隱隱作痛無法再次入眠,隨即那充滿怒意重重的一腳狠狠...
    家有小兒初長成閱讀 470評論 0 0
  • 為什么要對各級主管說寬容?這同領(lǐng)導(dǎo)工作的性質(zhì)有關(guān)。任何工作,無非涉及到兩個方面:一是同物打交道,二是同人打交道。 ...
    波羅蜜啊閱讀 529評論 0 0