iphone - How can I set maskToBounds effect on CAShapeLayer(Rounded-Recr cornered UIView)? -


i want make glow effect spread outside of thisview.

i used code make half-rounded rect cornered uivew.

round 2 corners in uiview

here code.

+ (uiview *)makeupperhalfroundedview:(uiview *)view {     cashapelayer *masklayer = [cashapelayer layer];     masklayer.frame = view.bounds;     uibezierpath *roundedpath =     [uibezierpath bezierpathwithroundedrect:masklayer.bounds                           byroundingcorners:uirectcornertopleft | uirectcornertopright                                 cornerradii:cgsizemake(8.f, 8.f)];     masklayer.fillcolor = [[uicolor blackcolor] cgcolor];     masklayer.backgroundcolor = [[uicolor clearcolor] cgcolor];     masklayer.path = [roundedpath cgpath]; //    masklayer.maskstobounds = no;      //don't add masks layers in hierarchy!     uiview *superview = [view superview];     [view removefromsuperview];     view.layer.mask = masklayer;     [superview addsubview:view];      return view; } 

and there two image buttons in view closed boundary. if touch event happen on buttons, glow effect shows(showstouchwhenhighlighted)

before using piece of code, used

thisview.layer.cornerradius = 8; thisview.layer.maskstobounds = no; 

and glow effect spread outside of 'thisview'.

but after using cashapelayer in 'thisview' masking half-roused rect, glow effect masked boundary.

what you're seeing how mask supposed work. applying mask layer of superview. let's call view superview (just in code). okay, do? mask superview , sublayers. that includes subviews. subviews sublayers.

so, since buttons subviews of superview, masked else inside superview.

if don't want happen, don't make buttons subviews of superview. can sit on top of superview without being subviews, example.


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -