中間透明的UIView實現的幾種方法

2021-07-10 07:14:42 字數 1932 閱讀 7061

總的來說,還是比較簡單的。下面是我遇到的過程中想到的幾種方法

1、用calayer的mask層來實現

uibezierpath *path = [uibezierpath bezierpathwithrect:self

.view

.bounds];

[path addarcwithcenter:cgpointmake(cgrectgetwidth(self

.view

.bounds)/2, cgrectgetheight(self

.view

.bounds)/2) radius:50 startangle:0 endangle:m_pi *2 clockwise:yes];

path.usesevenoddfillrule = yes;

cashapelayer *shapelayer = [cashapelayer layer];

shapelayer.path = path.cgpath;

shapelayer.fillcolor= [uicolor blackcolor].cgcolor; //其他顏色都可以,只要不是透明的

shapelayer.fillrule=kcafillruleevenodd;

uiview *translucentview = [uiview new];

translucentview.frame = self

.imaegview

.bounds;

translucentview.backgroundcolor = [uicolor blackcolor];

translucentview.alpha = 0.5;

translucentview.layer

.mask = shapelayer;

[self

.view addsubview:translucentview];

//把shapelayer的透明度改為0.5,直接新增layer也一樣

// shapelayer.opacity = 0.5

//[self.imageview.layer addsublayer:shapelayer];

2、使用透明作為uiview來實現

uiview *translucentview = [uiview new];

translucentview.frame = self

.imaegview

.bounds;

translucentview.backgroundcolor = [uicolor blackcolor];

translucentview.alpha = 0.5;

uiimageview *maskview = [uiimageview new];

maskview.frame = self

.imaegview

.bounds;

maskview.image = [uiimage imagenamed:@"translucent"];

maskview.contentmode = uiviewcontentmodescaletofill;

// maskview.

translucentview.maskview = maskview;

[self

.imaegview addsubview:translucentview];

3、使用drawrect:(cgrect)rect實現(參考別人的)

- (void)drawrect:(cgrect)rect

實現左右兩邊固定寬度,中間自適應的布局的幾種方法

請移步flex筆記 左右兩邊設定absolute,分別設定left為0 right為0,設定寬度,中間部分只需設定左右的margin即可。12 3 grid網格布局實現非常簡單,只需幾行 12 3 left middle right 1 float布局使用的時候一定要注意清除浮動。2 positio...

QWidget實現透明的方式

qwidget實現透明的方式 this setwindowflags qt framelesswindowhint this setattribute qt wa translucentbackground,true 重寫qwidget的paintevent qpaintevent event 函式...

般透明色的實現

半透明實現 一 div css半透明基礎介紹 top 設定div半透明css div說明 1 filter 對win ie設定半透明濾鏡效果,filter alpha opacity 80 代表該物件80 半透明,火狐瀏覽器不認 2 moz opacity 對mozilla firefox火狐瀏覽器...