CollectionView分組,組頭高度自適應

需求:選中答題卡中一個選項,下次進入答題卡,選中的題在屏幕中.


實現(xiàn)的頁面

因為要實現(xiàn)選中的滾動居中效果,使用tableView在cell內(nèi)部添加Button的方式很難實現(xiàn)(嘗試無果后放棄),只能使用CollectionView來實現(xiàn).具體實現(xiàn)代碼:

1.自定義header和cell

collectionView.register(AnswerCardCollectionViewCell.self, forCellWithReuseIdentifier: "answerCardCellId")

collectionView.register(AnswerCardHeaderView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: "header")

// DataSource
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

? ? ? ? let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "answerCardCellId", for: indexPath) as! AnswerCardCollectionViewCell

? ? ? ? cell.configData(model: sourceArray[indexPath.section].userAnswers[indexPath.row], fromePage: type, index: String(indexPath.row + 1))

? ? ? ? return cell

? ? }

? ? func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {

? ? ? ? if kind == UICollectionView.elementKindSectionHeader {

? ? ? ? ? ? let header = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: "header", for: indexPath) as! AnswerCardHeaderView

? ? ? ? ? ? header.configHeaderData(model: sourceArray[indexPath.section])

? ? ? ? ? ? return header

? ? ? ? } else {

? ? ? ? ? ? return UICollectionReusableView()

? ? ? ? }

? ? }

2.計算headView的高

// 實現(xiàn)UICollectionViewDelegateFlowLayout代理方法

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {

? ? ? ? var height: CGFloat = 0

? ? ? ? if (sourceArray[section].titel ?? "").isEmpty {

? ? ? ? ? ? return CGSize(width: SCREEN_WIDTH, height: height)

? ? ? ? } else if (sourceArray[section].projectInro ?? "").isEmpty {

? ? ? ? ? ? height = 56

? ? ? ? ? ? return CGSize(width: SCREEN_WIDTH, height: height)

? ? ? ? } else {

? ? ? ? ? ? let proInroH = (sourceArray[section].projectInro ?? "").getHeight(font: UIFont.systemFont(ofSize: 14), width: SCREEN_WIDTH - 40, lineSpacing: 1.5)

? ? ? ? ? ? height = 66 + proInroH

? ? ? ? ? ? return CGSize(width: SCREEN_WIDTH, height: height)

? ? ? ? }

? ? }

3.滾動CollectionView

collectionView.scrollToItem(at:IndexPath(item: row, section: section), at: .centeredVertically, animated:false)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滤淳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惩嘉,老刑警劉巖拣技,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡纲菌,警方通過查閱死者的電腦和手機焕议,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門宝磨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事唤锉∈滥遥” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵窿祥,是天一觀的道長株憾。 經(jīng)常有香客問我,道長晒衩,這世上最難降的妖魔是什么嗤瞎? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮听系,結(jié)果婚禮上猫胁,老公的妹妹穿的比我還像新娘。我一直安慰自己跛锌,他們只是感情好弃秆,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著髓帽,像睡著了一般菠赚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上郑藏,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天衡查,我揣著相機與錄音,去河邊找鬼必盖。 笑死拌牲,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的歌粥。 我是一名探鬼主播塌忽,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼失驶!你這毒婦竟也來了土居?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤嬉探,失蹤者是張志新(化名)和其女友劉穎擦耀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩堤,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡眷蜓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了胎围。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吁系。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡芹敌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垮抗,到底是詐尸還是另有隱情氏捞,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布冒版,位于F島的核電站液茎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辞嗡。R本人自食惡果不足惜捆等,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望续室。 院中可真熱鬧栋烤,春花似錦、人聲如沸挺狰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丰泊。三九已至薯定,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞳购,已是汗流浹背话侄。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留学赛,地道東北人年堆。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像盏浇,于是被迫代替她去往敵國和親变丧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容