Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CGPath pathtotal;
- List<CGPath> path;
- CGPoint initialPoint;
- CGPoint latestPoint;
- DrawDrawerDraw drawDrawerDraw;
- public DrawGuessView(IntPtr handle) : base(handle)
- {
- BackgroundColor = UIColor.White;
- pathtotal = new CGPath();
- SocketEventHandler.Add("draw:drawer:draw", onDrawDrawerDraw);
- }
- public void onDrawDrawerDraw(dynamic obj)
- {
- drawDrawerDraw = (DrawDrawerDraw)obj;
- for (int i = 0; i <= drawDrawerDraw.coords.Count; i++)
- {
- if (initialPoint.X != (nfloat)drawDrawerDraw.coords[i].x0 && initialPoint.Y != (nfloat)drawDrawerDraw.coords[i].y0)
- {
- path[i] = new CGPath();
- }
- initialPoint.X = (nfloat)drawDrawerDraw.coords[i].x0;
- initialPoint.Y = (nfloat)drawDrawerDraw.coords[i].y0;
- latestPoint.X = (nfloat)drawDrawerDraw.coords[i].x1;
- latestPoint.Y = (nfloat)drawDrawerDraw.coords[i].y1;
- //add lines to the touch points
- if (path[i].IsEmpty)
- {
- path[i].AddLines(new CGPoint[] { initialPoint, latestPoint });
- }
- else
- {
- path[i].AddLineToPoint(latestPoint);
- }
- }
- SetNeedsDisplay();
- }
- public override void Draw(CGRect rect)
- {
- base.Draw(rect);
- try
- {
- foreach (var item in path)
- {
- if (!initialPoint.IsEmpty)
- {
- //get graphics context
- using (CGContext g = UIGraphics.GetCurrentContext())
- {
- //set up drawing attributes
- g.SetLineWidth(2);
- UIColor.Black.SetStroke();
- //add geometry to graphics context and draw it
- pathtotal.AddPath(item);
- g.AddPath(pathtotal);
- g.DrawPath(CGPathDrawingMode.Stroke);
- }
- }
- }
- }
- catch (Exception e) { }
- }
- }
Add Comment
Please, Sign In to add comment