iOS開發特殊日期灰色介面的實現

2021-10-18 18:07:25 字數 1048 閱讀 2037

用重寫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...