首页
/
每日頭條
/
圖文
/
ios qq通知不顯示内容
ios qq通知不顯示内容
更新时间:2026-07-25 21:47:08

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

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
推荐阅读
爆炒鴨腎怎麼炒好吃(爆炒鴨腎健脾養胃)
爆炒鴨腎怎麼炒好吃(爆炒鴨腎健脾養胃)
  鴨腎可健胃養脾,補鐵益氣。爆炒鴨腎,方法簡單,味道卻很贊!香噴噴的一盤,保證讓你口水流不停!   食材:鴨腎,青椒,幹辣椒,姜絲,料酒,醬油,蚝油,鹽适量,鴨腎洗淨,一個鴨腎切成四份,先切成平衡的刀紋,不要切斷   做法:   在垂直處再平衡着切出刀紋,垂直着切的刀紋每三刀就切斷,腰花就打好了      幹辣椒用清水浸泡,小朋友要用紅椒,和青椒滾刀切成小...
2026-07-25
網店裝修都需要裝修什麼(網店裝修具體包含哪些内容)
網店裝修都需要裝修什麼(網店裝修具體包含哪些内容)
  在電商平台開店,好的店鋪裝修風格是可以一下子就吸引買家的,這樣不僅可以增加點擊率,還可以大大提高購買率,那網店裝修具體包含哪些内容?接下來我們就來給大家講解一下這方面的内容。      1、店鋪店标設計   店标是作為本身店鋪的标志,要能表現本身的個性、店鋪經營的内容和能夠給人以深刻的印象。店标顯示在您店鋪的左上角。店标也可以用本身的真實照片,這樣讓人感...
2026-07-25
沈仲章生平(自成一類沈仲章)
沈仲章生平(自成一類沈仲章)
     從右到左:吳曉鈴,沈仲章,崔明奇,金克木   當年讀金克木的《談外語課本》,對他提到的一個朋友非常感興趣。“我有個朋友學過不止一種外語,而且學得不錯。他常對我說,自己腦筋不靈了,學不好什麼學問了,隻好學點外語,因為學外語不費腦筋。”對費盡心思而學不好外語的人來說,會覺得這話有顯而易見的凡爾賽成分,進而想追問,“誰敢誇這海口?是說胡話還是打啞謎?”這...
2026-07-25
十一月份打雷下雨是什麼預兆(冬天十一月打雷是什麼征兆)
十一月份打雷下雨是什麼預兆(冬天十一月打雷是什麼征兆)
  在人們看來夏天打雷是比較正常的一個現象,但冬天打雷卻似乎比較少見。今日清晨,湖南、浙江等地出現打冬雷現象,那冬天(十一月)打雷是什麼征兆?老話怎麼講呢?      冬天打雷其實并沒有什麼征兆,不僅今年冬天出現打雷,在2021年2月份的時候也出現冬天打雷的現象。冬天打雷的原因分析如下:   1.冬季打雷說明空氣濕度大,容易形成雨雪,故有“冬天打雷雷打雪”之...
2026-07-25
佳能g1x系列相機(媲美單反的便攜相機)
佳能g1x系列相機(媲美單反的便攜相機)
  随着科技的不斷進步,便攜相機如今也有着媲美大型單反的畫質表現和性能配置。佳能G1X III就是這樣一款産品,它搭載了一枚2400萬像素的APS-C畫幅圖像傳感器,配置了全像素雙核對焦技術,因此無論是畫質還是對焦,這款可以放在大衣口袋裡的相機,都有着媲美單反的性能表現。目前在京東商城上,佳能G1X III的價格是6999元。      佳能G1X III ...
2026-07-25
Copyright 2023-2026 - www.tftnews.com All Rights Reserved