iOS開發 - 第05篇 - 項目 - 05 - 首頁

來源:互聯網
上載者:User

標籤:

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 - 首頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.