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

知識點(diǎn)回顧

  • 開發(fā)方式:使用代碼搭建框架映企,因?yàn)椴势盿pp的界面非常多悟狱,使用代碼搭建方便后期維護(hù)

  • 環(huán)境部署

    1. app支持的iOS版本,不需要加載main挤渐,app圖標(biāo),啟動圖片
    • 啟動圖片:模擬器和真機(jī)的尺寸由啟動圖片決定双絮,XCode6之后蘋果提供啟動的xib浴麻,啟動xib的原理就是蘋果把xib上面的內(nèi)容截屏得问,生成一張新的圖片,保存到沙盒的cache中
    • 為什么要使用啟動的xib软免?有了它宫纬,就不用關(guān)心有沒有模擬器的啟動圖片,會自動識別模擬器的真實(shí)尺寸膏萧;同事可以展示更多的內(nèi)容漓骚;簡化美工的工作量,只要提供一張拉伸的圖片榛泛,就可以通過自動布局把圖片拉伸蝌蹂。
  • 搭建框架,在程序啟動完成的時候曹锨,創(chuàng)建窗口孤个,設(shè)置窗口的根控制器,顯示窗口

  • 自定義TabBar控制器

    1. 目的:自己的事情自己管理沛简,需要給TabBarVc添加子控制器
    • 抽出一個添加所有子控制器的方法齐鲤,這樣做是為了使我們代碼結(jié)構(gòu)更加清晰
    • 添加自定義的子控制器,為了使項(xiàng)目結(jié)構(gòu)更加清晰覆享,需要事先劃分好
    • 點(diǎn)擊TabBar上的按鈕需要跳轉(zhuǎn)到對應(yīng)的子控制器
    • 點(diǎn)擊TabBar上的按鈕佳遂,通知TabBarVc跳轉(zhuǎn)控制器营袜,給TabBarVc傳遞按鈕的角標(biāo)
  • 給界面添加導(dǎo)航條

    1. 既要顯示子控制器的view撒顿,又要顯示導(dǎo)航條,需要把子控制器包裝成導(dǎo)航控制器
    • 設(shè)置導(dǎo)航條的背景圖片和導(dǎo)航條上文字內(nèi)容
    • 導(dǎo)航條的內(nèi)容一般由棧頂控制器的navagationItem決定荚板,這個模型不能設(shè)置
    • 導(dǎo)航條的背景圖片由導(dǎo)航條決定凤壁,通過導(dǎo)航控制器就能拿到導(dǎo)航條
    • 設(shè)置導(dǎo)航條的背景圖片一定要在導(dǎo)航條顯示之前設(shè)置才好使
    • 可以在第一次初始化導(dǎo)航控制器的時候去設(shè)置,導(dǎo)航條的內(nèi)容由導(dǎo)航控制器管理
    • 需要自定義導(dǎo)航控制器跪另,并在initialize方法中獲取當(dāng)前導(dǎo)航控制器類下面所有導(dǎo)航條設(shè)置
    • 導(dǎo)航條上的標(biāo)題也需要通過導(dǎo)航條設(shè)置
  • 設(shè)置每一個界面的導(dǎo)航條內(nèi)容拧抖,包括購彩大廳和我的彩票

封裝蒙版和活動菜單

  • 注意:不能把蒙版和活動菜單放到同一個view中,是因?yàn)樾薷母缚丶耐该鞫让饴蹋涌丶耐该鞫纫矔淖?/p>

  • 自定義蒙版

    1. 在.h文件中聲明兩個類方法唧席,分別用來顯示(show)和隱藏(hide)蒙版
    • 在顯示蒙版的方法中,需要創(chuàng)建一個自己的對象嘲驾,大小和屏幕尺寸相同淌哟,設(shè)置背景顏色和透明度
    • 將蒙版對象添加到主窗口中即可
+ (void)show
{
    
    // 創(chuàng)建蒙版對象
    XMGCover *cover = [[XMGCover alloc] initWithFrame:XMGScreenBounds];
    
    cover.backgroundColor = [UIColor blackColor];
    
    cover.alpha = 0.6;
    
    
    // 把蒙版對象添加主窗口
    [XMGKeyWindow addSubview:cover];
}
  • 隱藏蒙版
    1. 因?yàn)殡[藏蒙版的方法是類方法,需要遍歷窗口的子控件
    • 如果子控件是當(dāng)前蒙版對象的類型辽故,將其從父控件中移除即可
+ (void)hide
{
    for (UIView *childView in XMGKeyWindow.subviews) {
        if ([childView isKindOfClass:self]) {
            [childView removeFromSuperview];
        }
    }
}
  • 自定義活動菜單(利用xib)

    1. 在頭文件中聲明一個從xib加載控件的方法徒仓,控件的尺寸默認(rèn)和xib一樣大
    • 聲明一個將控件顯示在某個位置的方法
    • 聲明一個將控件隱藏在某個位置的方法,并且在隱藏完畢以后提供其他操作的參數(shù)
    • 聲明一個代理誊垢,用來監(jiān)聽用戶點(diǎn)擊關(guān)閉按鈕時的事件
  • 注意:修改父類的frame并不會影響里面的子控件掉弛,可以利用自動布局解決子控件隨父控件尺寸的改變而改變

  • 如果修改形變直接縮放為0症见,父控件馬上消失,而不會產(chǎn)生動畫殃饿,所以可以縮放到0.01

自定義菜單

  • 自定義控件的時候谋作,首先要考慮外界怎么調(diào)用方便,根據(jù)外界需求乎芳,設(shè)計自定義控件所需要提供的方法
  • 需求:自定義菜單要顯示在哪個view上瓷们,要顯示數(shù)據(jù)的模型,以及從哪個位置開始顯示秒咐,最后還有自定義菜單的隱藏
  • 拋出異常谬晕,可以方便調(diào)用者知道是否正確使用該方法
    NSException *excp = [NSException exceptionWithName:@"items的總數(shù)不符合" reason:@"傳入的數(shù)組總數(shù)必須是3的倍數(shù)" userInfo:nil];
    [excp raise];
  • 自定義彈簧菜單的步驟:
    1. 添加所有按鈕并進(jìn)行布局(九宮格布局)
    • 添加白色的分割線
    • 添加背景為黑色的view
    • 開始下移動畫效果
    • 再次點(diǎn)擊菜單按鈕的時候開始上移動畫效果

搭建競技場

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    //
    UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:@[@"足球",@"籃球"]];
    seg.width += 40;
    
    // 設(shè)置UISegmentedControl背景圖片
    [seg setBackgroundImage:[UIImage imageNamed:@"CPArenaSegmentBG"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [seg setBackgroundImage:[UIImage imageNamed:@"CPArenaSegmentSelectedBG"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    seg.selectedSegmentIndex = 0;
    // 0 142 143
    // 設(shè)置邊框顏色
    seg.tintColor = XMGColor(0, 142, 143);
    
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    dict[NSForegroundColorAttributeName] = [UIColor whiteColor];
    [seg setTitleTextAttributes:dict forState:UIControlStateSelected];
    
    self.navigationItem.titleView = seg;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市携取,隨后出現(xiàn)的幾起案子攒钳,更是在濱河造成了極大的恐慌,老刑警劉巖雷滋,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件不撑,死亡現(xiàn)場離奇詭異,居然都是意外死亡晤斩,警方通過查閱死者的電腦和手機(jī)焕檬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來澳泵,“玉大人实愚,你說我怎么就攤上這事⊥酶ǎ” “怎么了腊敲?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長维苔。 經(jīng)常有香客問我碰辅,道長,這世上最難降的妖魔是什么介时? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任没宾,我火速辦了婚禮,結(jié)果婚禮上沸柔,老公的妹妹穿的比我還像新娘循衰。我一直安慰自己,他們只是感情好勉失,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布羹蚣。 她就那樣靜靜地躺著,像睡著了一般乱凿。 火紅的嫁衣襯著肌膚如雪顽素。 梳的紋絲不亂的頭發(fā)上咽弦,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機(jī)與錄音胁出,去河邊找鬼型型。 笑死,一個胖子當(dāng)著我的面吹牛全蝶,可吹牛的內(nèi)容都是我干的闹蒜。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼抑淫,長吁一口氣:“原來是場噩夢啊……” “哼绷落!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起始苇,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤砌烁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后催式,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體函喉,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年荣月,在試婚紗的時候發(fā)現(xiàn)自己被綠了管呵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡哺窄,死狀恐怖捐下,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情堂氯,我是刑警寧澤蔑担,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站咽白,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鸟缕。R本人自食惡果不足惜晶框,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懂从。 院中可真熱鬧授段,春花似錦、人聲如沸番甩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缘薛。三九已至窍育,卻和暖如春卡睦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背漱抓。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工表锻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乞娄。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓瞬逊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親仪或。 傳聞我的和親對象是個殘疾皇子确镊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評論 2 361

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