總的來說,還是比較簡單的。下面是我遇到的過程中想到的幾種方法
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火狐瀏覽器...