আইওএসে প্যান এবং সোয়াইপের মধ্যে পার্থক্য কী?


129

সহজ মনে হচ্ছে .. ট্র্যাকপ্যাডটি ধরে রাখুন, আঙুলটি সরান, ছেড়ে দিন .. তবে কোনওভাবে সোয়াইপ ট্রিগার করা হচ্ছে না (পরিবর্তে প্যানটি ট্রিগার করা হয়েছে)

UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] 
      initWithTarget:v action:@selector(handleSwipe:)];
swipeGesture.direction= UISwipeGestureRecognizerDirectionUp;
[v addGestureRecognizer:swipeGesture];

পরিবর্তে উপরের ক্রম দ্বারা প্যানটি স্বীকৃত।

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] 
      initWithTarget:v action:@selector(handlePan:)];
[v addGestureRecognizer: panGesture];

প্যানে যদি মন্তব্য করা হয় তবে সোয়াইপগুলি একই অঙ্গভঙ্গি দ্বারা স্বীকৃত .. এটির সাথে 2 টি প্রশ্ন:

  • একটি প্যান এবং একটি সোয়াইপের মধ্যে পার্থক্য কি?
  • আইফোন সিমুলেটারে কীভাবে কেউ একটি সোয়াইপ অনুকরণ করতে পারে?

1
@ চালক, আমি ভুল হলে আমাকে সংশোধন করুন তবে সোয়াইপ চার দিক, উপরে, নীচে, বাম, ডান এবং প্যান ব্যবহার করে যে কোনও দিক হতে পারে। সঠিক
ভিক্টর এঙ্গেল

উত্তর:


231

সংজ্ঞা অনুসারে, একটি সোয়াইপ অঙ্গভঙ্গি অবশ্যই একটি প্যান অঙ্গভঙ্গি - উভয়ই স্পর্শ পয়েন্টগুলির অনুবাদমূলক চলন জড়িত। পার্থক্যটি সনাক্তকারী শব্দার্থবিজ্ঞানের মধ্যে রয়েছে: একটি প্যান শনাক্তকারী অনুবাদমূলক আন্দোলনের সূচনার জন্য সন্ধান করে এবং সময়ের সাথে যে কোনও দিক থেকে আন্দোলনের প্রতিবেদন চালিয়ে যায়, যখন একটি সোয়াইপ শনাক্তকারী প্রয়োজনীয় দিকটিতে রৈখিকভাবে সরানো হয়েছে কিনা তা নিয়ে তাত্ক্ষণিক সিদ্ধান্ত নেয়।

ডিফল্টরূপে, কোনও দু'জন সনাক্তকারী একই অঙ্গভঙ্গিটি স্বীকৃতি দেবে না, তাই প্যান এবং সোয়াইপের মধ্যে বিরোধ রয়েছে। সম্ভবত, আপনার প্যান শনাক্তকারী দ্বন্দ্বটি "জিত" করেছেন কারণ এর অঙ্গভঙ্গিটি সহজ / আরও সাধারণ: একটি সোয়াইপ একটি প্যান তবে প্যানটি সোয়াইপ নাও হতে পারে, তাই প্যানটি প্রথমে স্বীকৃতি দেয় এবং অন্যান্য সনাক্তকারীকে বাদ দেয়।

আপনার ডেলিগেট পদ্ধতি ব্যবহার করে gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:বা প্যান শনাক্তকারীকে সোয়াইপ শনাক্তকরণের উপর নির্ভরশীল করে কোনও প্রতিনিধি দল ছাড়াই এই বিরোধটি সমাধান করতে সক্ষম হওয়া উচিত requireGestureRecognizerToFail:

দ্বন্দ্বের সমাধান হওয়ার সাথে সাথে, আপনার মাউসটি দ্রুত টেনে এনে একটি আঙুলের সোয়াইপ অনুকরণ করতে সক্ষম হওয়া উচিত। (যদিও আপনার আঙুলের চেয়ে মাউসটি আরও নির্ভুল, তবে এটি কোনও ডিভাইসে আসল কাজটি করার চেয়ে কিছুটা চটজলদি)) বিকল্প ও শিফট কীগুলি ধরে রেখে দুই আঙুলের প্যান / সোয়াইপ করা যেতে পারে।


24
চমৎকার উত্তর. তবে আমি মনে করি না যে প্যানটি অঙ্গভঙ্গিটি জিতেছে কারণ এটি আরও সাধারণ, বরং এটি একটি অবিচ্ছিন্ন অঙ্গভঙ্গি (যেখানে একটি সোয়াইপ একটি বিচ্ছিন্ন অঙ্গভঙ্গি) তাই সোয়াইপের আগে একটি প্যানটি স্বীকৃত। সোয়াইপটি কেবল আঙুলটি উত্থাপিত হওয়ার সময়ই স্বীকৃত হয়, আঙুলটি চলতে শুরু করার সাথে সাথেই প্যানটি সনাক্ত করা যায়। "দুটি অঙ্গভঙ্গি সনাক্তকারীদের জন্য একটি সুনির্দিষ্ট আদেশ ঘোষণা করার" অধীনে ইভেন্ট পিজিতে সোয়াইপ বনাম প্যানটি ভালভাবে আচ্ছাদিত।
নেভান রাজা

27

আপনি যখন নিজের আঙুলটি কেবল নির্দিষ্ট দিকগুলিতে টানেন তখনই সোয়াইপ অঙ্গভঙ্গি কাজ করবে (সোয়াইপ আপ, সোয়াইপ ডাউন, বামদিকে সোয়াইপ করুন, ডানদিকে সোয়াইপ করুন)। উদাহরণস্বরূপ, টেবিল ভিউ নিয়ন্ত্রণকারীতে সোয়াইপযোগ্য ঘরগুলি।

আপনি যখন কোনও দিকে আপনার আঙুল টেনে আনেন তখন প্যান অঙ্গভঙ্গি কাজ করবে। আপনি এটিতে ত্বরণ বা হ্রাস দিতে পারেন। বা উদাহরণস্বরূপ, কোনও বস্তুকে এক জায়গা থেকে অন্য জায়গায় নিয়ে যাওয়া বা কোনও স্পিনার স্পিনিং করা ..


3

আপেল নথি হিসাবে। অ্যাপল ইউআইপিএনগ্যাসচারর সনাক্তকারী নীচে প্যান এবং একটি সোয়াইপের মধ্যে পার্থক্য: -

ইউআইপিএনগাস্টারআরকনগাইজারটি ইউআইজিস্টেরআর সনাক্তকারীের একটি কংক্রিট সাবক্লাস যা প্যাঁচানোর জন্য (টেনে আনার) অঙ্গভঙ্গিগুলির সন্ধান করে। ব্যবহারকারীর অবশ্যই এটি দেখার সময় একটি বা একাধিক আঙ্গুল টিপতে হবে। এই অঙ্গভঙ্গি শনাক্তকারীর জন্য ক্রিয়া পদ্ধতি প্রয়োগকারী ক্লায়েন্টরা ইঙ্গিতটির বর্তমান অনুবাদ এবং গতিবেগ জানতে চাইতে পারেন।

একটি প্যানিং অঙ্গভঙ্গি অবিচ্ছিন্ন। এটি শুরু হয় ( শুরু হয় ) যখন ন্যূনতম আঙ্গুলের অনুমোদিত সংখ্যা (সর্বনিম্ন সংখ্যাআফটিউচস ) প্যান হিসাবে বিবেচিত হওয়ার জন্য যথেষ্ট পরিমাণে স্থানান্তরিত হয়। কমপক্ষে ন্যূনতম আঙ্গুলের নীচে চাপ দেওয়া অবস্থায় একটি আঙুল সরে গেলে এটি পরিবর্তিত হয় (পরিবর্তিত)। যখন সমস্ত আঙ্গুলগুলি উঠানো হয় তখন এটি শেষ ( সমাপ্ত ) হয়।

এই শ্রেণীর ক্লায়েন্টরা তাদের ক্রিয়াকলাপ পদ্ধতিতে, অঙ্গভঙ্গির বর্তমান অনুবাদ ( অনুবাদ (ইন :) ) এবং অনুবাদটির গতিবেগ (বেগ (ইন :) ) এর জন্য ইউআইপিএনগাস্টারআর সনাক্তকারী বস্তুটি জিজ্ঞাসা করতে পারে । অনুবাদ এবং বেগের মানগুলির জন্য যার সমন্বয় ব্যবস্থাটি ব্যবহার করা উচিত সেই দৃশ্যটি তারা নির্দিষ্ট করতে পারে। ক্লায়েন্টরা পছন্দসই মানটিতে অনুবাদটি পুনরায় সেট করতে পারে।

সুইফট 3 ইউআইপিএন অঙ্গভঙ্গি সনাক্তকারী ডেমো উদাহরণ: - সংস্থান লিঙ্ক

import UIKit

class ViewController: UIViewController {
// this records our circle's center for use as an offset while dragging
var circleCenter: CGPoint!

override func viewDidLoad() {
    super.viewDidLoad()

    // Add a draggable view
    let circle = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 100.0, height: 100.0))
    circle.center = self.view.center
    circle.layer.cornerRadius = 50.0
    circle.backgroundColor = UIColor.green()

    // add pan gesture recognizer to
    circle.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.dragCircle)))

    self.view.addSubview(circle)
}

func dragCircle(gesture: UIPanGestureRecognizer) {
    let target = gesture.view!

    switch gesture.state {
    case .began, .ended:
        circleCenter = target.center
    case .changed:
        let translation = gesture.translation(in: self.view)
        target.center = CGPoint(x: circleCenter!.x + translation.x, y: circleCenter!.y + translation.y)
    default: break
    }
  }
}

আপেল নথি হিসাবে। অ্যাপল ইউআইটিএপপেশারআর সনাক্তকারী

UITapGestureRecognizer একটি কংক্রিট উপশ্রেণী হয় UIGestureRecognizer যে একক বা একাধিক কল খোঁজে। অঙ্গভঙ্গিটি স্বীকৃতি পাওয়ার জন্য, নির্দিষ্ট আঙ্গুলের নির্দিষ্ট সংখ্যার বারটি নির্দিষ্ট সংখ্যার সাথে অবশ্যই আলতো চাপতে হবে।

যদিও ট্যাপগুলি পৃথক অঙ্গভঙ্গি, তবে এটি অঙ্গভঙ্গি সনাক্তকারী প্রতিটি রাজ্যের জন্য পৃথক; এইভাবে সম্পর্কিত ক্রিয়া বার্তা প্রেরণ করা হয় যখন অঙ্গভঙ্গিটি শুরু হয় এবং ইঙ্গিতের শেষের অবস্থা (এবং সহ) প্রতিটি মধ্যবর্তী অবস্থার জন্য প্রেরণ করা হয়। যে কোডটি ট্যাপ অঙ্গভঙ্গি পরিচালনা করে তাই ইশারার অবস্থার জন্য পরীক্ষা করা উচিত।

সুইফট 3 ইউআইটিএপপেশাররনগনাইজার ডেমো উদাহরণ রিসোর্স লিঙ্ক

override func viewDidLoad() {
   super.viewDidLoad()

   let tap = UITapGestureRecognizer(target: self, action: #selector(doubleTapped))
   tap.numberOfTapsRequired = 2
   view.addGestureRecognizer(tap)
}
func doubleTapped() {
     // do something cool here
     print("Test TapGesture")
}

সনাক্তকারী জন্য উদাহরণ চিত্রএখানে চিত্র বর্ণনা লিখুন


প্যান এবং সোয়াইপ ক্রিয়াগুলির মধ্যে পার্থক্য এবং আইফোন সিমুলেটারে কীভাবে তাদের মধ্যে পার্থক্য করা যায় সে সম্পর্কে প্রশ্ন। এই উত্তরটি সেগুলির কোনওটিরই সমাধান করে না, কারণ এটিতে সোয়াইপ অঙ্গভঙ্গি বা আইফোন সিমুলেটরগুলির উল্লেখ নেই।
ভিন্স ও'সুলিভান

@ ভিনসো'সুলিভান আমি প্যান এবং সোয়াইপের সংজ্ঞাটি ব্যাখ্যা করার চেষ্টা করব। আমি আশা করি যে এটি উভয়ের মধ্যে পার্থক্য বুঝতে সক্ষম করবে।
রেক্স

মূল পোস্টটি পাঁচ বছরের পুরানো এবং এর একটি স্বীকৃত উত্তর রয়েছে (এটিতে প্রায় 200 আপ ভোটও রয়েছে)। আমি মনে করি না যে যুক্ত করার জন্য আপনার পক্ষে দরকারী কিছু আছে (যদি না কীভাবে জিনিসগুলি এখন কাজ করে এবং তারা গ্রহণযোগ্য উত্তরে কীভাবে কাজ করে) এর মধ্যে পার্থক্য না থাকে)।
ভিন্স ও'সুলিভান

@ ভিনসো'সুলিভান আমি এটিকে সহজ উদাহরণ এবং আপেল নথির সংজ্ঞা দিয়ে সহজ পদ্ধতিতে ব্যাখ্যা করি। আমি মনে করি এটি আইওএস-এ টপ প্যাটার্ন প্রদর্শন করে বিষয় এবং চিত্র উভয় ক্ষেত্রেই এটি বেশি জোর দেয়।
রেক্স

0

Http://hammerjs.github.io/ এর মতে , আমি মনে করি পার্থক্যটি হ'ল:

  • প্যান: একই বড় দৃশ্যে দিকগুলি সরান
  • সোয়াইপ: বেশ কয়েকটি মতামতের মধ্যে স্যুইচ করুন

অঙ্গভঙ্গিটি একই, উভয়ই একটি আঙুল ব্যবহার করে এবং সরান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.