示例#1
0
 protected override void Dispose(bool disposing)
 {
     base.Dispose(disposing);
     if (disposing && this.Layer != null)
     {
         this.Layer.Dispose();
         this.Layer = null;
     }
 }
示例#2
0
            public override void TouchesBegan(Foundation.NSSet touches, UIEvent evt)
            {
                base.TouchesBegan(touches, evt);

                if (this.Layer == null)
                {
                    this.Layer       = new RadialGradientLayer();
                    this.Layer.Frame = new CGRect(0, 0, this.View.Frame.Width, this.View.Frame.Height);
                    this.View.Layer.AddSublayer(this.Layer);
                }

                var t     = (UITouch)touches.AnyObject;
                var point = t.LocationInView(this.View);

                this.Layer.Center = point;

                this.SetAni(0, 50);
            }
        internal override CALayer GetLayer(CGSize size)
        {
            var center  = Center;
            var radiusX = RadiusX;
            var radiusY = RadiusY;

            var radius = (nfloat)(radiusX + radiusY) / 2.0f;

            var transform = RelativeTransform;

            var isRelative = MappingMode == BrushMappingMode.RelativeToBoundingBox;

            var colors    = GradientStops.SelectToArray(gs => (CGColor)gs.Color);
            var locations = GradientStops.SelectToArray(gs => new nfloat(gs.Offset));

            var layer = new RadialGradientLayer(colors, locations, center, radius, isRelative);

            layer.SetNeedsDisplay();
            return(layer);
        }