首页
/
每日頭條
/
圖文
/
ios qq通知不顯示内容
ios qq通知不顯示内容
更新时间:2025-11-27 01:33:31

實現效果如圖所示,點擊好友分組展開分組下的所有好友。再次點擊收回分組。當一個分組處于展開狀态時點擊其他分組,展開點擊的分組并同時收回之前已經展開的分組。

ios qq通知不顯示内容(QQ列表是如何實現的)1

該效果的難點在于:

1.分組的展開與回收

2.點擊不同分組時回收之前的分組

分組的顯示通過tableView的header實現。每個分組下對應的好友通過tableViewCell實現。

我們通過自定義tableView的header來實現分組效果。自定義header代碼如下

在自定義header中我們通過button的點擊來實現好友列表的展開與關閉。

因為button我們在view中創建所以我們通過代理将button的點擊事件代理到controller中。

注意在此的GroupMode類屬性。

該屬性的目的是便于我們使用屬性的setter方法賦值,也是為了後面用KVO監聽屬性值的變化而存在的。

自定義header實現文件

ios qq通知不顯示内容(QQ列表是如何實現的)2

這裡寫了一個類方法。我們用重用的方式創建header.

ios qq通知不顯示内容(QQ列表是如何實現的)3

這裡我們用系統自帶的layoutSubviews方法來設置空間的frame.當然我們也可以在創建控件的過程中直接設置frame.

ios qq通知不顯示内容(QQ列表是如何實現的)4

使用屬性的setter方法賦值,并設置觀察者觀察GroupModel屬性的isOpen屬性。

注意這裡KVO觀察的isOpen屬性的目的就是為了标記當前分組的打開關閉狀态。

roate方法的作用是旋轉分組最左邊的三角圖片。

ios qq通知不顯示内容(QQ列表是如何實現的)5

在button的點擊事件中通過自省讓代理執行方法。

這裡需要注意的是,在該方法也就是分組被點擊的過程中需要不斷地改變分組的狀态屬性的值進而讓我們一會在controller中通過該屬性值刷新界面。

ios qq通知不顯示内容(QQ列表是如何實現的)6

這裡isOpen屬性的目的是為了标記分組的打開或者關閉狀态。

注意這裡的friends這個數組屬性,我們來看一下數據結構

Plist數據文件結構

ios qq通知不顯示内容(QQ列表是如何實現的)7

通過數據我們可以看出每個分組裡都一個數組,該數組裡是分組下每個好友的數據信息,所以這裡friends數組屬性的目的就是為了儲存每個分組下的好友model的。實現代碼如下

分組對應的GroupModel的實現文件

ios qq通知不顯示内容(QQ列表是如何實現的)8

在給分組model賦值的過程中獲取并封裝好友model。

下面我們來看Controller裡的實現。

ListTableViewController的實現文件

ios qq通知不顯示内容(QQ列表是如何實現的)9

dataArray屬性用來儲存分組的model類。

注意在此的GroupModel類屬性,該屬性的目的是為了接收上一次已經展開的分組對應的model類。

是為了用戶點擊了不同的分組而之前的分組已經展開時回收之前的分組而存在的。

因為我們當點擊了不同的分組時不能确定之前我們點擊并已經展開的是哪個分組,所以用該屬性儲存上一次對應的分組。

方便我們之後刷新界面。原理與點擊空白回收鍵盤的原理是類似的。

ios qq通知不顯示内容(QQ列表是如何實現的)10

在返回每個分區有幾行cell時,因為每個分區的cell個數是要根據是否點擊分組而展開的。

所以通過isOpen屬性來判斷該分組是否已經展開返回對應的cell行數。

ios qq通知不顯示内容(QQ列表是如何實現的)11

這是代碼的核心,重中之重。

在button的代理方法裡,首先判斷當前點擊的是否是之前展開的分組,如果不是,将之前的分組的model的isOpen設置成NO.刷新界面。

這樣在刷新界面的過程中因為isOpen屬性為NO,所以該分組下的cell個數為零。效果為回收效果。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
一分鐘了解衛生巾(關于衛生巾的一切)
一分鐘了解衛生巾(關于衛生巾的一切)
     寫在前面   衛生巾再次在網絡上引起熱議,這已經是今年第二次大規模讨論。對女性來說,這是一個平常不過卻又值得嚴肅讨論的話題。事關女性健康,對于衛生巾,不僅是每一位女性,女性身邊的他,更應該了解這一切。   近日,#散裝衛生巾#的話題不斷發酵,詞條被閱讀了13.7億次以上。      三無衛生巾、女性月經貧困、女性月經健康等各種問題都得到了廣泛讨論。...
2025-11-27
word表格出現兩頁怎麼解決(Word表格從中間斷了)
word表格出現兩頁怎麼解決(Word表格從中間斷了)
  簡介:word中的表格有時候從中間斷開,分布在兩頁,顯得非常難看。如圖所示:      圖1   問:這是什麼原因?答:因為文字内容所占據的空間太大,表格在一頁放不下去,自動溢出到下一頁。   問:怎麼調整到一頁?答:把字号縮小,把行距縮小,删除多餘的段落标記、删減不必要的内容等。當縮小到一定程度時,表格會自動變成一頁。   如圖所示:      圖2 ...
2025-11-27
零基礎學全自動封邊機教程(趙姐教大家看闆材封邊)
零基礎學全自動封邊機教程(趙姐教大家看闆材封邊)
  大家好,今天來聊一聊闆材的封邊問題。EVA、PUR和激光封邊,你們聽說過嗎?   EVA和PUR都屬于膠水類型,EVA是物理固化可逆,通過加熱固體膠變成液體膠,熱熔封邊可以二次使用,成本低,但容易溢膠,還會有膠線,遇高溫會開裂。      PUR封邊是化學反應不可逆,采用德國PUR膠水,靠濕氣固化,不易受溫度影響導緻開裂,耐用美觀,純度僅次于激光封邊。激...
2025-11-27
數學活動好吃的水果教案(愛吃的水果教學設計)
數學活動好吃的水果教案(愛吃的水果教學設計)
  教師資格面試考試難度越來越大,其中一方面的難度就體現在課型的增多。小學語文除了閱讀課,還會考查識字寫字課、拼音教學課和口語交際課。其中口語交際作為日常教學中不太常見的課型,難度更大一些,今天中公教師考試研究院以一篇《愛吃的水果》為例,提供了較為詳細的教學設計,看看口語交際教學該如何教。   一、教學目标   1.抓住水果的特點,條理清晰,生動準确地描述水...
2025-11-27
鄭州國際馬拉松公交改線(鄭州欲開通馬拉松)
鄭州國際馬拉松公交改線(鄭州欲開通馬拉松)
  大河報·大河客戶端記者 甯田甜 通訊員 羅鵬   核心提示丨   11月3日,鄭州國際馬拉松将鳴槍開跑,當天,鄭州市部分道路将實施臨時交通管制。鄭州公交總公司将于當天開通馬拉松公交專線,方便市民前往參賽觀賽。      哪些路段會實施臨時交通管制?   據了解,3日淩晨5:30至上午11:00,鄭州市中原東路(工人路至京廣路段)雙向、嵩山北路(建設西路至...
2025-11-27
Copyright 2023-2025 - www.tftnews.com All Rights Reserved