結(jié)構(gòu)體在父類(lèi)構(gòu)建中的使用

說(shuō)明

? 該思想來(lái)自同事LEAF另玖,我是學(xué)習(xí)他的困曙,非本人原創(chuàng)。(程序猿應(yīng)該要尊重別人的成功谦去,因此特寫(xiě)在最前慷丽。)

問(wèn)題

? 當(dāng)項(xiàng)目中用到多種UITableViewCell(這實(shí)在是太常見(jiàn)了),其表面非常相似鳄哭,但是又略有區(qū)別要糊,屬于可以拆分成不同部分的組合的時(shí)候,如何設(shè)計(jì)父類(lèi)妆丘,會(huì)讓代碼更漂亮锄俄?

效果如圖:

情景1


情景2
情景3

? 情景可以更多局劲,此處不再一一列舉。這些cell高度的相似奶赠,很明顯都是由不同的組件組合一起的鱼填,在iOS中如何實(shí)現(xiàn)這樣的父類(lèi),讓不同的cell繼承自同一個(gè)父類(lèi)毅戈,來(lái)讓自己的代碼變得漂亮呢苹丸?

我們公司的解法

struct閃亮登場(chǎng) :struct (C programming language) - Wikipedia

第一步:

? 抽象:將cell抽象成四個(gè)部分,分別是Top竹祷,Content谈跛,Title,F(xiàn)ooter塑陵,其中四個(gè)組件的樣式又各有不同的組合感憾,且各個(gè)組件本身可能存在,也可能不存在令花。

? 廢話不多說(shuō)阻桅,直接上代碼。

1. 不同部分組合(共四部分兼都,可以配置成不同的組合嫂沉,甚至可以使用 "|" 操作。):

代碼1

第二步:

? 組裝:使用結(jié)構(gòu)體來(lái)組裝我們需要的cell樣式扮碧。

1. 大招大招趟章,構(gòu)造struct(構(gòu)造一個(gè)結(jié)構(gòu)體,來(lái)組裝當(dāng)前cell的各個(gè)部分):

代碼2

2. 代碼實(shí)現(xiàn):

代碼3

第三步:

? 配置:配置初始樣式慎王。

1. 初始化基本樣式蚓土,項(xiàng)目使用VFL布局,其中的imageContentRatio以及customerContentRatio是用來(lái)根據(jù)不同的UI調(diào)整內(nèi)容的高度赖淤,子類(lèi)可以重寫(xiě))

代碼4

2. 正式組裝蜀漆,根據(jù)結(jié)構(gòu)體組裝UITableViewCell:

代碼5
代碼6

第四步:

? 使用:是騾子是馬,拉出來(lái)溜溜咱旱!

1. 新建UITableViewCell繼承自該父類(lèi)确丢,只需要實(shí)現(xiàn)一個(gè)方法:(即可以實(shí)現(xiàn)一個(gè)沒(méi)有top,中間是一個(gè)大圖UIImageView吐限,接下來(lái)是一個(gè)自定義的UIView鲜侥,然后就是標(biāo)題簡(jiǎn)介,最后就是一個(gè)帶評(píng)論等信息的Footer诸典,是不是很cool剃毒?)

代碼7

2. 更多調(diào)整,還可以實(shí)現(xiàn)以下方法,在子類(lèi)中去調(diào)整cell不同部分所占的高度赘阀,Very easy益缠,right ?

代碼8

寫(xiě)在最后

? 由于暫時(shí)沒(méi)有時(shí)間整理完整demo,稍后會(huì)在貼上github的demo鏈接基公,有關(guān)本案例中牽涉到的如何使用VFL計(jì)算UITableViewCell高度等內(nèi)容幅慌,會(huì)在之后章節(jié)中分享,并期待大家分享你們的更好的解決方案轰豆。

? PS:該實(shí)現(xiàn)思路來(lái)自于同項(xiàng)目組的同事LEAF胰伍,在此對(duì)他表示感謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酸休,隨后出現(xiàn)的幾起案子骂租,更是在濱河造成了極大的恐慌,老刑警劉巖斑司,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渗饮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宿刮,警方通過(guò)查閱死者的電腦和手機(jī)互站,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)僵缺,“玉大人胡桃,你說(shuō)我怎么就攤上這事】某保” “怎么了翠胰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)自脯。 經(jīng)常有香客問(wèn)我亡容,道長(zhǎng),這世上最難降的妖魔是什么冤今? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮茂缚,結(jié)果婚禮上戏罢,老公的妹妹穿的比我還像新娘。我一直安慰自己脚囊,他們只是感情好龟糕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著悔耘,像睡著了一般讲岁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天缓艳,我揣著相機(jī)與錄音校摩,去河邊找鬼。 笑死阶淘,一個(gè)胖子當(dāng)著我的面吹牛衙吩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播溪窒,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼坤塞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了澈蚌?” 一聲冷哼從身側(cè)響起摹芙,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宛瞄,沒(méi)想到半個(gè)月后浮禾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坛悉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年伐厌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裸影。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挣轨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出轩猩,到底是詐尸還是另有隱情卷扮,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布均践,位于F島的核電站晤锹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏彤委。R本人自食惡果不足惜鞭铆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望焦影。 院中可真熱鬧车遂,春花似錦、人聲如沸斯辰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)彬呻。三九已至衣陶,卻和暖如春柄瑰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剪况。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工教沾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拯欧。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓详囤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親镐作。 傳聞我的和親對(duì)象是個(gè)殘疾皇子藏姐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件该贾、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,065評(píng)論 4 62
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,131評(píng)論 30 470
  • 記得有朋友跟我說(shuō)起過(guò)杨蛋,為什么我家那“泥腿子”就是學(xué)不到他媽的半點(diǎn)優(yōu)雅兜材,敗家能力卻比他媽有過(guò)之而無(wú)不及? 有一首歌唱...
    HugeTalk閱讀 458評(píng)論 0 0
  • (一)林 林間的鳥(niǎo)兒說(shuō):“姐姐逞力,外面有個(gè)人遇上了打劫曙寡,陷在泥里,正費(fèi)力要爬上來(lái)呢寇荧【偈” 花柳衣立即跑出去看。 賊子已...
    李離閱讀 476評(píng)論 2 1
  • 突然想試試能否將web測(cè)試也自動(dòng)化揩抡,經(jīng)過(guò)搜索户侥,發(fā)現(xiàn)了Selenium,尤其是支持最?lèi)?ài)的Python峦嗤,那就是它了! ...
    ljyfree閱讀 495評(píng)論 0 1