شروع دوره پایتون از پنجشنبه 1 خرداد ، مقدماتی تا پیشرفته، بدون پیش نیاز شروع دوره پایتون از پنجشنبه 1 خرداد ، مقدماتی تا پیشرفته، بدون پیش نیاز
🎯 ثبت نام

حرکات مقیاس (Scale)، کشیدن (Pan) و چرخش (rotate) در Xamarin iOS

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

حرکات مقیاس (Scale)، کشیدن (Pan) و چرخش (rotate) در Xamarin iOS

در اکثر برنامه های iOS قابلیت مقیاس پذیری، کشیدن و چرخش وجود دارد. برای معرفی حرکات در برنامه از GestureRecognizer استفاده می شود. مبانی سه حرکتی که در ادامه به توضیح آن خواهیم پرداخت عبارتند از:

1.     RotationGestureRecognizer

2.     PinchGestureRecognizer

3.     PanGestureRecognizer

اجازه دهید با انجام یک مثال از UIImage، تمام این حرکات را برای تصویر مورد نظر بکار ببریم.

RotationGestureRecognizer:

rotateGesture = new UIRotationGestureRecognizer((() => 

  { 

  if ((rotateGesture.State == UIGestureRecognizerState.Began || rotateGesture.State == UIGestureRecognizerState.Changed) && (rotateGesture.NumberOfTouches == 2))  

   { 

      imageView.Transform = CGAffineTransform.MakeRotation(rotateGesture.Rotation + r); 

    } 

      else if (rotateGesture.State == UIGestureRecognizerState.Ended)  

     { 

       r += rotateGesture.Rotation; 

      } 

  }));

 

PinchGestureRecognizer:

pinchGesture = new UIPinchGestureRecognizer(() =>  

  { 

  if (pinchGesture.State == UIGestureRecognizerState.Began || pinchGesture.State == UIGestureRecognizerState.Changed)  

    { 

        pinchGesture.View.Transform *= CGAffineTransform.MakeScale(pinchGesture.Scale, pinchGesture.Scale); 

        pinchGesture.Scale = 1; 

    } 

  }); 

 

PanGestureRecognizer:

panGesture = new UIPanGestureRecognizer(() =>  

     { 

    if ((panGesture.State == UIGestureRecognizerState.Began || panGesture.State == UIGestureRecognizerState.Changed) && (panGesture.NumberOfTouches == 1))  

     

       { 

         var p0 = panGesture.LocationInView(View);   

        if (dx == 0) 

            dx = p0.X - imageView.Center.X;   

        if (dy == 0) 

            dy = p0.Y - imageView.Center.Y; 

        var p1 = new PointF(p0.X - dx, p0.Y - dy); 

        imageView.Center = p1; 

      } 

      else if (panGesture.State == UIGestureRecognizerState.Ended)  

      { 

        dx = 0; 

        dy = 0; 

      } 

    });

   

اضافه کردن حرکت به UIImage:

panGesture.MaximumNumberOfTouches = 2; 

imageView.AddGestureRecognizer(panGesture); 

imageView.AddGestureRecognizer(rotateGesture); 

imageView.AddGestureRecognizer(pinchGesture); 

 

 

 

1394/10/07 2075 975
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...