標籤:
1、下拉重新整理
1.1 進入首頁自動重新整理
1.2 顯示最新微博數量
註:彈出的UILabel應該添加到導航控制器的View上,而不應該添加到tableView上,否則會更隨tableView一起滾動!!!
在發送請求成功後,調用下面方法(注意動畫):
2、添加上拉重新整理控制項
1> 自訂HWLoadMoreFooter(XIB)
1. UILabel利用autoLayout填充View
2.添加轉圈控制項,勾選動畫
2>提供類方法載入XIB控制項
3> 添加到tableView的tableFooterView上
註:為防止一開始進入來不及顯示tableView資料,需要先將tableFooterView隱藏,否則會直接顯示!!!
4> 代理監聽scrollView滾動,等待滾動到最後的時候顯示tableFooterView然後再自動重新整理
註:scrollView屬性詳解 ---重要
註:contentSize才是捲動區域,需要等待最後一個Cell完全顯示的時候,才去顯示footerView!!!
3、微博未讀數
採用定時器每隔60s擷取微博未讀數。
注1:設定self.tabBarItem.badgeValue
注2:下拉重新整理成功後,清空self.tabBarItem.badgeValue
注3:NSTimer定時器,若主線程正在處理其他事件,如一直在滾動,則定時器是不會啟動的,應告訴主線程,分一點時間給定時器,即修改mainRunLoop中定時器的模式
注4:拿到未讀數後也應該在APP表徵圖上設定相應數字
注5:上述方法完成後,還有一個問題,一旦APP進入後台,則定時器無法工作,也就無法擷取微博未讀數,顯示在APP表徵圖上,需要再程式進入背景時候,開啟背景工作
注6:下面開啟背景工作的時間仍然是不確定的,還要取決於作業系統CPU、記憶體等的佔有率,也有可能會被系統殺死。
注7:若要擷取更多的時間,最好告訴作業系統APP進入後台需要有背景工作,在Info.plst中設定後台模式:Required background modes ==App plays audio or streams audio/video using AirPlay,但是這樣仍然是不確定到底能在後台運行多久
4、調節HWTitleButton文字圖片間距
在上一篇5.2節自訂HWTitleButton中,文字和圖片連在一起
5、cell結構分析
6、自訂cell步驟 --- 重要
註:每個cell的高度不一樣,每個cell裡面顯示的內容也不一樣
1> 建立一個繼承自UITableViewCell的子類
2> 在initWithStyle:方法中進行子控制項的初始化
1. 將有可能顯示的所有子控制項都添加到contentView中
2. 順便設定子控制項的一些屬性(一次性的設定:字型、文字顏色、背景)
3> 提供2個模型
1. 一個是資料模型(文字資料 + 圖片資料)
2. 一個是frame模型(資料模型 + 所有子控制項的frame+ cell的高度)
4> cell應該提供一個frame模型屬性
1. 將frame模型傳遞給cell
2. cell根據frame模型給子控制項設定frame,根據資料模型給子控制項設定資料
3. cell根據資料模型決定顯示和隱藏哪些子控制項
5> 在tableView的代理方法返回cell的高度
7、自訂cell
7.1 自訂HWStatusCell,初始化控制項
註:在cell中應該根據HWStatusFrame模型(既包含HWStatus模型、又包含每個控制項的frame)來配置cell!!!
註:UILabel中的字型應和後面計算frame時候的字型保持一致!!!
7.2 自訂HWStatusFrame模型
7.3 設定cell的資料和每個控制項frame
HWStatusCell 添加-(void)setStatusFrame:(HWStatusFrame *)statusFrame
7.4 計算cell中控制項的frame
HWStatusFrame添加-(void)setStatus:(HWStatus *)status
註:為達到寫一個控制項frame出現一個frame的效果,供測試,可以先寫好外面代碼(tableView的代理方法)
註:本文frame的計算!!!
7.5 修改
HWHomeViewController中代碼
1> 將原先的HWStatus數組改成HWStatusFrame數組
2>將新浪返回的HWStatus數組改成HWStatusFrame數組
3> 在需要修改HWStatusFrame的地方進行相應修改
4> 添加tableView:heightForRowAtIndexPath:代理方法
7.5 HWUser和HWStatus添加需要的屬性
注 :重寫setMbtype方法判斷是否是會員
iOS開發 - 第05篇 - 項目 - 05 - 首頁