設定UIView的mask約束邊界

2021-07-16 18:15:45 字數 1092 閱讀 3878

uiedgeinsets stretchinsets = uiedgeinsetsmake(32, 40, 10, 40);

uiimage* backimage = isoutgoing ? [uiimage imagenamed:@"bubble_right.png"] : [uiimage imagenamed:@"bubble_left.png"];

backimage = [backimage resizableimagewithcapinsets:stretchinsets resizingmode:uiimageresizingmodestretch];

//設定的 mask layer

calayer* layer = [calayer new];

layer.contents = (__bridge id _nullable)(backimage.cgimage);

cgrect r = [self cgrectcenterrectforresizableimage:backimage];

layer.contentscenter = r;

layer.frame = cgrectmake(0, 0, fixsize.width, fixsize.height);

layer.contentsscale = [uiscreen mainscreen].scale

; layer.opacity = 1

; imageview.layer

.mask = layer;

imageview.layer

.maskstobounds = yes;

這裡通過設定 uiimageview的 layer.mask 來設定約束,這裡通過一張,去的邊緣部分組成乙個path,path以內的部分將會顯示出來,path以外的部分將不會顯示,backimage 決定了path的形狀!

當然了這裡還可以設定其它的layer作為uiview的mask。

附這裡用到的另外乙個方法:

- (cgrect) cgrectcenterrectforresizableimage:(uiimage *) image

UIView 設定圓角

直接看 viewt.layer.cornerradius 10 設定那個圓角的有多圓 viewt.layer.borderwidth 10 設定邊框的寬度,當然可以不要 viewt.layer.bordercolor uicolor redcolor cgcolor 設定邊框的顏色 viewt.la...

UIView設定圓角

為uiview設定圓角是實際開發中常需要處理的問題,就uiview而言相關的api沒有找到直接設定的方法 不過uiview是對calayer的封裝,設定calayer圓角則可以出來相應的效果。下面介紹幾種設定圓角的方法 1 為uiview的所有角都設定圓角 calayer layer view la...

UIView的layer層的設定

void viewdidload nslog anchorpoint nsstringfromcgpoint view.layer anchorpoint anchorpoint position 是某點基於父檢視原點的座標 相當於 view 的center nslog position nsstr...