iOS文字顏色漸變透明

2021-07-26 13:53:47 字數 2803 閱讀 7419

漸變透明這種效果的文字一般都在可滾動的label上,這樣的效果能使label看起來更加美觀,同時可以提醒使用者,還有部分文字沒有顯示出來。

效果如下:

文字顏色漸變透明.png

圖層結構是這樣的:在self.view上放乙個顏色半透明過渡的viewview上放乙個scrollviewscrollview上放乙個label。因為父檢視是半透明的,所以label上的文字也會跟隨者半透明。

難點在於這個半透明的view,它可以通過以下方法建立:

cgrect frame = cgrectmake(20, 100, screen_width-40, screen_height-100

-100);

// 過渡透明層

uiview *gradientview = [[uiview alloc] initwithframe:frame];

[self.view addsubview:gradientview];

cagradientlayer *gradientlayer = [cagradientlayer layer];

nsarray *colors = [nsarray arraywithobjects:

(id)[[uicolor colorwithwhite:0 alpha:0] cgcolor], //clearcolor,透明度為0(顯示為黑色,就像黑洞...)

(id)[[uicolor colorwithwhite:0 alpha:0.5] cgcolor],//clearcolor,透明度為0.5

(id)[[uicolor colorwithwhite:0 alpha:1] cgcolor], //clearcolor,透明度為1(顯示為透明)

nil];

[gradientlayer setcolors:colors];

[gradientlayer setstartpoint:cgpointmake(0.0f, 0.0f)];

[gradientlayer setendpoint:cgpointmake(0.0f, 0.2f)];

[gradientlayer setframe:gradientview.bounds];

[[gradientview layer] setmask:gradientlayer];

cagradientlayer是蘋果專門處理梯度顯示的乙個類,給它設定乙個顏色陣列即可顯示。這裡設定了三種顏色,cagradientlayer會自動讓這三種顏色平緩過渡。

[uicolor colorwithwhite:0 alpha:1]是透明色,即clearcolor,而

[uicolor colorwithwhite:0 alpha:0]是透明且alpha為0,由於子控制項的alpha值與父檢視相同,所以子檢視會有一部分區域為透明色。

設定完所有屬性之後,不要忘了呼叫[[gradientview layer] setmask:gradientlayer];

剩餘的**就簡單了。

uiscrollview *labscroll = [[uiscrollview alloc] initwithframe:gradientlayer.bounds];

labscroll.backgroundcolor = [uicolor whitecolor];

labscroll.showsverticalscrollindicator = no;

[gradientview addsubview:labscroll];

nsstring *text = self.t;

cgrect rect = [text boundingrectwithsize:cgsizemake(screen_width-40, 0) options:nsstringdrawinguseslinefragmentorigin|nsstringdrawingusesfontleading attributes:@ context:nil];

cgfloat height = rect.size.height;

labscroll.contentsize = cgsizemake(0, height);

uilabel *label = [[uilabel alloc] initwithframe:cgrectmake(0, 0, labscroll.bounds.size.width, height)];

label.textcolor = [uicolor darkgraycolor];

label.numberoflines = 0;

label.textalignment = nstextalignmentleft;

label.text = text;

label.font = [uifont systemfontofsize:18.0];

[labscroll addsubview:label];

其中self.t是乙個成員屬性,在get方法中賦值《赤壁賦》(手動滑稽)。

- (nsstring *)t
這樣,文字顏色漸變透明的效果就能實現啦。

文字顏色漸變

御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測試文字 御用測...

iOS 漸變顏色

漸變方式 vkgradientchangedirectionlevel,水平漸變 vkgradientchangedirectionvertical,豎直漸變 vkgradientchangedirectionupwarddiagonalline,向下對角線漸變 vkgradientchangedi...

透明(顏色)漸變背景(顏色透明背景),相容IE8

filter progid dximagetransform.microsoft.gradient gradienttype 0,startcolorstr 00000000,endcolorstr cc000000 ms filter progid dximagetransform.microso...