用重寫setimage的方法修改。
- (void)setimage:(uiimage *)image
在xcode中查詢所有用到uiimageview的地方,替換成你所建立的子類。(查詢範圍記得別選上pods部分,免得修改過多)
這樣sdwebimage展示的方法,也會走setimage。能把所有都變灰。(button等可以以此類推)。
- (uiimage*)makegrayimage:(uiimage*)image
- (uiimage*)systemimagetograyimage:(uiimage*)image
//第三步:渲染(繪製)
//引數1:上下文
//引數2:渲染區域
//引數3:原始檔(原)(說白了現在是乙個c/c++的記憶體區域)
cgcontextdrawimage(context, cgrectmake(0, 0, width, height), image.cgimage);
//第四步:將繪製顏色空間轉成cgimage(轉成可識別型別)
cgimageref grayimageref = cgbitmapcontextcreateimage(context);
//第五步:將c/c++ 的cgimage轉成物件導向的uiimage(轉成ios程式認識的型別)
uiimage* dstimage = [uiimage imagewithcgimage:grayimageref];
//釋放記憶體
cgcontextrelease(context);
cgimagerelease(grayimageref);
return dstimage;
}
優點:經過幾次測試,記憶體占用比修改飽和度方法低5-10mb。
缺點:png的透明部分會變黑,(如果不對有透明部分的控制項做操作,則沒問題)。
IOS介面開發之UIButton
測試uiimageview控制項 uibutton btnimageview uibutton buttonwithtype uibuttontypesystem btnimageview.frame cgrectmake 110,rect.size.height 40,150,30 btnimag...
iOS 脫離介面開發頁面
前言 1.根據ui設計稿寫出靜態頁面 不贅述 2.分析需求與頁面展示,與中後台溝通確定後,寫對應的model類class personmodel mtlmodel,mtljsonserializing 3.脫離介面進行除錯 建立若干靜態model例項值,或者直接修改model值,對應到不同的介面展示...
iOS 開發 介面上移
1.在 void viewdidload 中 註冊通知 監聽鍵盤彈起事件 nsnotificationcenter defaultcenter addobserver selfselector selector keyboardwillshow name uikeyboardwillshownoti...