public override void LayoutSublayersOfLayer(CALayer layer) { base.LayoutSublayersOfLayer(layer); var roundedFrame = Element as RoundedFrame; CACornerMask corners = new CACornerMask(); if (roundedFrame.RoundTopLeft) { corners = CACornerMask.MinXMinYCorner; } if (roundedFrame.RoundTopRight) { corners = corners | CACornerMask.MaxXMinYCorner; } if (roundedFrame.RoundBottomLeft) { corners = corners | CACornerMask.MaxXMaxYCorner; } if (roundedFrame.RoundBottomRight) { corners = corners | CACornerMask.MinXMaxYCorner; } this.ClipsToBounds = true; this.Layer.MaskedCorners = corners; }
public static CACornerMask ToCornerMask(this UIRectCorner corner) { CACornerMask mask = 0; if (corner.Has(UIRectCorner.AllCorners) || corner.Has(UIRectCorner.TopLeft)) { mask |= CACornerMask.MinXMinYCorner; } if (corner.Has(UIRectCorner.AllCorners) || corner.Has(UIRectCorner.TopRight)) { mask |= CACornerMask.MaxXMinYCorner; } if (corner.Has(UIRectCorner.AllCorners) || corner.Has(UIRectCorner.BottomLeft)) { mask |= CACornerMask.MinXMaxYCorner; } if (corner.Has(UIRectCorner.AllCorners) || corner.Has(UIRectCorner.BottomRight)) { mask |= CACornerMask.MaxXMaxYCorner; } return(mask); }