更改UIView的背景

2021-06-23 07:10:10 字數 1397 閱讀 2952

本文分析對比了各種更改uiview背景的方法。當然,背景是根據乙個來的(非純色)。

一.加乙個uiimageview在uiview上面

uiimageview* imageview =[[uiimageview alloc] initwithframe:view.bounds];

imageview.image = [[uiimage imagenamed:@"

name.png

"] stretchableimagewithleftcapwidth:left topcapheight:top];

[view addsubview:imageview];

這種方式,如果原始大小不夠(小於view的大小),可以拉伸,在view釋放後也沒有什麼記憶體保留。

二.通過來生成uicolor設定view的backgroundcolor

1.imagenamed方式

view.backgroundcolor = [uicolor colorwithpatternimage:[uiimage imagenamed:@"

name.png

"]];

2.contentoffile方式

nsstring* path = [[nsbundle mainbundle] pathforresource:@"

name

" oftype:@"

png"

]; view.backgroundcolor = [uicolor colorwithpatternimage:[uiimage imagewithcontentsoffile:path];

這兩種方式都會在生成color時占用大量的記憶體(原始的n倍,這個n可能會達到幾千的程度)。而且如果大小不夠,就會按照原始大小乙個乙個u畫過去,也就是不會自動拉伸。1和2的區別在於,view釋放後,1中的color並不會跟著釋放,而是一直存在於記憶體中(當然,再次根據這個生成color時並不會再次申請記憶體了),而2中的color就會隨著view的釋放而釋放。

三.quartzcore方式

uiimage *image = [uiimage imagenamed:@"

name.png"];

view.layer.contents = (id

) image.cgimage;

//如果需要背景透明加上下面這句

view.layer.backgroundcolor = [uicolor clearcolor].cgcolor;

這種方式會自動拉伸,而且沒有額外記憶體占用。

綜上,推薦第三種方式來根據設定背景色。

為UIView設定漸變背景

原文發布於 專案需要,需要在上顯示文字,但是文字的顏色很難控制,有時候與背景圖的顏色很接近導致文字難以看清楚,可以通過將上顯示文字的地方加一層黑色的半透明的背景色來解決這個問題。將這層背景色做成從黑色到透明的漸變。比如這樣一張圖,我需要在低端加上介紹文字 可以看到底下變得更黑了,文字更加清楚。實現方...

eclipse 背景顏色更改

這裡只是改變了workspace視窗的背景色,其他視窗需要修改系統背景色才行,比較簡單粗暴的辦法就是改登錄檔了 一切涉及登錄檔的修改建議先備份!eclipse 操作介面預設顏色為白色。對於我們長期使用電腦程式設計的人來說,白色很刺激我們的眼睛,所以我經常會改變workspace的背景色,使眼睛舒服一...

解決 UiView 中沒有控制背景的API

uiview設定背景的方法 第一種方法 利用的uiview的設定背景顏色方法,用做圖案顏色,然後傳給背景顏色。uicolor bgcolor uicolor colorwithpatternimage uiimage imagenamed bgimg.png uiview myview uiview...