漸變透明這種效果的文字一般都在可滾動的label上,這樣的效果能使label看起來更加美觀,同時可以提醒使用者,還有部分文字沒有顯示出來。
效果如下:
文字顏色漸變透明.png
圖層結構是這樣的:在self.view
上放乙個顏色半透明過渡的view
,view
上放乙個scrollview
,scrollview
上放乙個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...