使用 Frame 與 autolayout 自適應(yīng) cell 高度的實(shí)現(xiàn)以及滑動(dòng)性能檢測(cè)

一直學(xué)習(xí)和閱讀大神們發(fā)布的文章和技術(shù),每次想自己寫點(diǎn)東西的時(shí)候總覺得沒時(shí)間,不過一句話說的好,時(shí)間擠擠就有了.以前在 CN 上面也寫過和分享過一些 文章和demo,本來準(zhǔn)備也寫在 CN 里面的,突然發(fā)現(xiàn)賬號(hào)登錄不了(尷尬!!!),反正現(xiàn)在也很少上 CN, 基本都在瀏覽簡(jiǎn)書,索性就寫在這吧.廢話有點(diǎn)多了,正式開始.
先看看視圖結(jié)構(gòu)

運(yùn)行效果圖

demo 中分別用直接設(shè)置 Frame 和 autolayout 來實(shí)現(xiàn) cell 高度自適應(yīng).并對(duì)比兩種環(huán)境下載快速滑動(dòng)過程中檢測(cè)滑動(dòng)流暢度,相對(duì)比,在 Frame 環(huán)境下,流暢度相對(duì)高點(diǎn),也就是掉幀低,當(dāng)然在 Frame 形式下,代碼量要大一點(diǎn),在就是在一些適配下,略顯麻煩.這也是在早期開發(fā)中常用的設(shè)計(jì)環(huán)境,就不多說,直接上代碼:
直接用一個(gè) model 計(jì)算保存 Frame

-(void)setModel:(TestModel*)model
{
_model = model;
_iconImageF=CGRectMake(10,10,60,60);
_nameLableF=CGRectMake(CGRectGetMaxX(_iconImageF)+10,10,0,0);
CGSizesize = [model.name_keysizeWithAttributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:17.f]}];
_nameLableF.size= size;
size = [model.time_keysizeWithAttributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:17.f]}];
_timeLableF=CGRectMake(CGRectGetMaxX(_iconImageF)+10,CGRectGetMaxY(_iconImageF)-size.height,0,0);
_timeLableF.size= size;
size = [model.text_keyboundingRectWithSize:CGSizeMake([UIScreenmainScreen].bounds.size.width-20,MAXFLOAT)options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeadingattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:17.f]}context:nil].size;
_textLableF=CGRectMake(10,CGRectGetMaxY(_iconImageF)+10, [UIScreenmainScreen].bounds.size.width-20, size.height);
_topViewF=CGRectMake(0,0, [UIScreenmainScreen].bounds.size.width,CGRectGetMaxY(_textLableF));
_otherLableF=CGRectMake(0,0, size.width, size.height);
CGFloatmanger =10;
CGFloaty =0;
CGFloatw = (([UIScreenmainScreen].bounds.size.width-20-4*manger))/3;
CGFloath = w;
int col = (int)(model.images.count-1) /3;
y = col * (w + manger)+manger;
_otherViewF = CGRectMake(10,_topViewF.size.height+10, [UIScreenmainScreen].bounds.size.width-20, y+h+10);
_height = CGRectGetMaxY(_otherViewF)+10;
}

demo 傳送門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容