圖片-視圖

1 image的圓角問題

老問題,出現(xiàn)問題的根源在圓角效果可能帶來的離屏渲染辐马。

a. 圓角圖片拷橘。
b. 子線程做圓角裁剪,同理還是圓角圖片喜爷。
c. 添加一個中空的圓角遮罩層冗疮。
d.使用 Core Graphics 重新繪制帶圓角的圖片。

*d*
CGRect rect = (CGRect){0.f,0.f,size};
UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
CGContextAddPath(UIGraphicsGetCurrentContext(), [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:corner cornerRadii:CGSizeMake(radius, radius)].CGPath);
         CGContextClip(UIGraphicsGetCurrentContext());
[strongSelf drawInRect:rect];
UIImage *output =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

2 UIImage加載圖片

????基本流程:加載-->解碼-->繪制檩帐。通常加載圖片時IOS通常會延遲解碼圖片赌厅。
????原生方法中最好使用imageNamed: 方法--加載圖片后立即解壓,不影響圖片的繪制轿塔。但是此方法只對于應(yīng)用中的資源圖片有效特愿,對于用戶生成或者下載的圖片來說是無效的。我們可以考慮繞開UIKit來加載圖片勾缭。

NSInteger index = indexPath.row
NSURL *imageURL = [NSURL fileURLWithPath:imagePath];
NSDictionary *options = @{(__bridge id)kCGImageSourceShouldCache:YES};
CGImageSourceRef source = CGImageSourceCreateWithURL((__bridge CFURLRef)imageURL,NULL);
CGImageRef imageRef =CGImageSourceCreateImageAtIndex(source,0,(__bridge CFDictionary)options);
UIImage *image = [UIImage imageWithCGImage:imageRef];
CFRelease(source)

3 像素不對齊&image和容器大小不一致

????出現(xiàn)像素不對齊的情況揍障,會導(dǎo)致在GPU渲染時,對沒對齊的邊緣俩由,需要進行插值計算毒嫡,這個插值計算的過程會有性能損耗。

像素不對齊: 邏輯像素(point)乘以2(2x的視網(wǎng)膜屏) 或3(3x的視網(wǎng)膜屏)得到的物理像素為 整數(shù)值幻梯,或者說得到的浮點數(shù)且小數(shù)點后都是0的兜畸,這就像素對齊了,否則就是像素不對齊碘梢。

邏輯像素(point)與物理像素(pixel):通常我們UI標注和app里面視圖大小為邏輯像素咬摇。不同機型顯示屏1point對應(yīng)2x或3x的物理像素。圖片渲染前會將point換算為pixel煞躬。

????當圖片與圖片容器像素大小不一致時同樣會造成不必要的損耗肛鹏。

查找不對齊像素:模擬器中勾選Debug -->Color Misaligned Images選項逸邦,當UIView(及其子類)的frame像素不對齊顯示洋紅色;當圖片的像素大小與控件的大小不一致而導(dǎo)致需要縮放時在扰,顯示黃色缕减。

1、frame設(shè)置時候芒珠,使用整數(shù); 需要計算frame時候桥狡,計算的結(jié)果使用ceil處理一下,避免小數(shù)點后有非0數(shù)存在皱卓。UITableViewCell的高度的高度是整數(shù)裹芝。
2、項目中好爬,要求UI設(shè)計師提供@2x和@3x的切圖。
3甥啄、設(shè)置imageView的size要和切圖的size(邏輯像素(point))相等存炮。
4、網(wǎng)絡(luò)上獲取的圖片的size要縮放和imageView的size(邏輯像素(point))要相等蜈漓,縮放后的圖片的scale和[UIScreen mainScreen].scale要相等穆桂。
5、縮放這樣的耗時操作應(yīng)該放到子線程去做融虽。最好做緩存享完,避免每次顯示都需要縮放操作。

4像素混合

????iPhone模擬器中勾選 Debug ->Color Blended Layers選項 可以將像素混合的部分顯示出來有额。發(fā)生了像素混合的區(qū)域顯示紅色般又,正常則顯示綠色

像素混合: 是指在某視圖為透明背景色,GPU在渲染視圖時巍佑,需要將該視圖和下層視圖混合(Blend)后才能計算出該像素點的實際顏色茴迁;這增加了GPU的工作,損耗了性能萤衰。

5 view設(shè)置圖片

UIImage *image = [UIImage imageNamed:@"playing"];
view.layer.contents = (__bridge id)image.CGImage;
//設(shè)置顯示的圖片范圍(0~1)
view.layer.contentsCenter = CGRectMake(0.25, 0.25, 0.5, 0.5);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末堕义,一起剝皮案震驚了整個濱河市疟呐,隨后出現(xiàn)的幾起案子媳纬,更是在濱河造成了極大的恐慌,老刑警劉巖蕉斜,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椿争,死亡現(xiàn)場離奇詭異怕膛,居然都是意外死亡,警方通過查閱死者的電腦和手機秦踪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門嘉竟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事舍扰【腧剑” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵边苹,是天一觀的道長陵且。 經(jīng)常有香客問我,道長个束,這世上最難降的妖魔是什么慕购? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮茬底,結(jié)果婚禮上沪悲,老公的妹妹穿的比我還像新娘。我一直安慰自己阱表,他們只是感情好殿如,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著最爬,像睡著了一般涉馁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上爱致,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天烤送,我揣著相機與錄音,去河邊找鬼糠悯。 笑死帮坚,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的互艾。 我是一名探鬼主播叶沛,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忘朝!你這毒婦竟也來了灰署?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤局嘁,失蹤者是張志新(化名)和其女友劉穎溉箕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悦昵,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡肴茄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了但指。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寡痰。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡抗楔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拦坠,到底是詐尸還是另有隱情连躏,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布贞滨,位于F島的核電站入热,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晓铆。R本人自食惡果不足惜勺良,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望骄噪。 院中可真熱鬧尚困,春花似錦、人聲如沸链蕊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽示弓。三九已至讳侨,卻和暖如春呵萨,著一層夾襖步出監(jiān)牢的瞬間奏属,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工潮峦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留囱皿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓忱嘹,卻偏偏與公主長得像嘱腥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拘悦,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

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