10月26號web
1、環境搭建 1.屏幕方向改成僅支持正常的豎屏 2.啓動程序時隱藏狀態欄 3.修改軟件名稱 4.去除圖標玻璃質感效果 2、判斷用戶是否第一次使用這個版本 1.將沙盒中的版本號和info.plist中的版本號進行比較 2.第一次使用:顯示版本新特性界面 3.非第一次使用:顯示主界面(顯示狀態欄) 3、版本新特性界面 1.自定義控制器的view-UIImageView 2.添加UIScrollView和內部的圖片 3.添加UIPageControl 4.添加UIScrollView最後一個界面的分享和開始按鈕 5.全屏圖片屏幕適配 * .png * @2x.png * -568h@2x.png
10月27號框架
1、主界面 1.設計Dock類 * 底部的選項條 * 用來存放多個選項卡標籤 2.讓Dock提供一個添加標籤(Item)的方法 * 好比方法: // icon是標籤的圖標 // title是標籤的文字 - (void)addItemWithIcon:(NSString *)icon title:(NSString *)title; * 根據icon和title建立item * 添加item * 監聽item點擊 * 按照添加順序調整全部的item的frame 3.設計DockItem類 * 表明一個選項卡標籤 * 繼承自UIButton * 實現相應方法來調整內部圖片和文字的位置 4.抽取NSString的分類,用來往文件名後面拼接字符串 5.爲Dock添加代理 * 代理的做用是監聽Dock上DockItem(選項卡\標籤)的點擊 6.初始化子控制器 * 若是子控制器須要導航條,就包裝一個UINavigationController * 點擊標籤的時候切換對應的子控制器 * 移除舊子控制器的view,添加新子控制器的view 7.設置導航主題 * 目的是保證整個項目中全部導航欄和按鈕的樣式一致 * 自定義一個導航控制器,在裏面設置導航欄和導航按鈕的主題 * 使用導航控制器 8.給UIBarButtonItem抽取一個分類 * 快速建立一個顯示2張不一樣圖片的UIBarButtonItem 9.Dock的抽取和封裝 * Dock * DockItem * DockController
10月29號post
1、更多 1.加載More.plist,讀取表格信息 2.給每一行Cell設置對應的背景圖片(backgroundView和selectedBackgroundView) 1> 若是一組只有一行,就設置4個圓角的背景圖片 2> 若是一組有多行 * 首行:設置上面有2個圓角的背景圖片 * 末行:設置下面有2個圓角的背景圖片 * 中間行:設置沒有圓角的背景圖片 3.添加底部的「退出當前帳號」紅色按鈕(tableViewFooterView) 4.設置每一個Cell右邊的箭頭或者文字(accessoryView) 5.設置每一組頭部和尾部的高度(sectionHeaderHeight和sectionFooterHeight) 6.封裝cell 1> 目的:將設置cell內部屬性的代碼封裝到cell中,好比背景圖片、右邊的view 2> 須要提供的接口 * 設置所在的tableView * 設置行號(indexPath) * 設置cell的類型(右邊顯示什麼東西)
10月30號優化
1、受權頁面 1.用webView加載登陸頁面 2.在webView的代理方法中攔截全部請求 3.攔截到回調地址的請求 * 返回NO,不讓它跳轉 * 截取code=後面的請求標記(Request Token) 4.利用Request Token發送post請求換取accessToken 5.增長MBProgressHUD指示器 6.編寫一個HttpTool封裝get\post請求 7.編寫一個AccountTool存儲帳號信息 2、主頁面 1.發送請求獲取微博數據,展現微博內容和用戶名 2.封裝模型Status、User 3.封裝一個StatusTool,專門用來管理微博數據
11月1號spa
1、主頁面(第一個版本) 1.添加SDWebImage框架,下載用戶頭像 2.根據微博內容和用戶暱稱算出Cell的高度 2、主頁面(第二個版本) 1.自定義一個StatusCell,添加可能出現的全部子控件 2.設計一個StatusCellFrame對象,專門用來存儲每個Cell內部全部子控件的frame 3.在tableView代理方法中建立StatusCellFrame,返回cell的高度 4.在tableView數據源方法中建立StatusCell,設置cell對應的StatusCellFrame 5.在設置cell的StatusCellFrame時,設置每一個子控件的frame和數據
10月2號設計
1、主頁面 1.自定義Cell的代碼優化 * 在得到最新微博的時候計算Frame,而後再reloadData * 在tableView:heightForRowAtIndexPath:方法中返回StatusCellFrame算好的cell高度 * 在tableView:cellForRowAtIndexPath:方法中新建自定義cell,給Cell傳遞對應的StatusCellFrame對象 2.頭像 * 封裝一個IconView,存放用戶頭像圖片和認證圖標 * 提供接口讓別人傳遞(User)用戶和(IconType)頭像類型數據 3.暱稱 * 根據是否是會員來決定暱稱的顏色、決定會員圖標是否須要顯示 4.時間 * 解析新浪返回的字符串爲更合理的字符串 5.來源 * 截取來源中間的有用字符串 6.轉發 * 背景圖片 * 暱稱加上@ 7.配圖 * 以九宮格形式展現圖片
10月4號代理
1、主頁面 1.底部Dock 1> 封裝一個Dock類 2> 添加內部的3個按鈕和分隔線、設置背景圖片、設置自動伸縮屬性 3> 重寫setFrame方法,目的是限制Dock的寬高 4> 在Cell中添加Dock,而且設置y值 5> 拿到微博數據,設置操做條按鈕的數值 2.添加下拉刷新功能 3.添加上拉加載更多功能
10月5號code
1、微博正文 1.新建正文控制器,在點擊首頁的某一條微博時跳轉過去 2.在MainController中設置導航控制器的代理,監聽全部導航控制器的跳轉 1> 若是即將顯示的不是根控制器 * 將導航控制器view的高度拉長爲屏幕的高度(不包括狀態欄高度) * 添加Dock到跟控制器(目的是在切換控制器時,Dock能隨着根控制器一塊兒移動。注意設置Dock的y值,當根控制器view是UIScrollView時,要加上contentOffset的y值。) * 給即將顯示的控制器添加左上角的返回按鈕 2> 若是顯示完畢的是根控制器 * 將導航控制器view的高度還原爲默認高度(屏幕高度 - Dock高度) * 將Dock添加到MainController的view上 3.Dock應該提供一個方法返回當前選中標籤的索引 4.tableView處理步驟 #pragma mark 1.有多少組 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView * 返回2 #pragma mark 2.第section組頭部控件有多高 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section * section == 0 返回0 * section == 1 返回標題欄的高度(44) #pragma mark 3.第section組有多少行 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section * section == 0 返回1 * section == 1 * 若是當前是轉發,返回轉發的數量 * 若是當前是評論,返回評論的數量 #pragma mark 4.indexPath這行的cell有多高 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath * section == 0 返回微博cell的高度 * section == 1 * 若是當前是轉發,返回轉發cell的高度 * 若是當前是評論,返回評論cell的高度 #pragma mark 5.indexPath這行的cell長什麼樣子 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath * section == 0 返回微博cell * section == 1 * 若是當前是轉發,返回轉發cell * 若是當前是評論,返回評論cell #pragma mark 6.第section組頭部顯示什麼控件 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section * section == 0 返回nil * section == 1 返回標題欄控件 5.抽取Cell和Frame的公共父類 6.建立tableView第1組的頭部控件 7.展現被轉發的微博