新浪微博-開發過程

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.展現被轉發的微博
相關文章
相關標籤/搜索