আমি ইউআইউইউভিউ ভিউ অবজেক্টগুলিকে স্ক্রোলিং এবং বাউন্সিং থেকে আটকাতে কিছুটা ভিন্ন পদ্ধতির চেষ্টা করেছি : অন্যান্য অঙ্গভঙ্গিগুলিকে ওভাররাইড করার জন্য একটি অঙ্গভঙ্গি শনাক্তকারী যুক্ত করা।
দেখে মনে হচ্ছে, ইউআইবিউবভিউ বা এর স্ক্রোলার সাবভিউ ব্যবহারকারী স্ক্রোলিং সনাক্ত করতে নিজস্ব প্যান অঙ্গভঙ্গি সনাক্তকারী ব্যবহার করে। তবে অ্যাপলের ডকুমেন্টেশন অনুসারে একটি অঙ্গভঙ্গি সনাক্তকারীকে অন্যের সাথে ওভাররাইড করার বৈধ উপায় রয়েছে। ইউআইজিস্টারআরকিগনাইজারডেলিগেট প্রোটোকলের একটি পদ্ধতি অঙ্গভঙ্গি সনাক্তকারী রয়েছে: শিখতে হবে একই সাথে উইথগ্যাসচারআর সনাক্তকারী: - যা কোনও সংঘর্ষের অঙ্গভঙ্গি সনাক্তকারীদের আচরণ নিয়ন্ত্রণ করতে দেয়।
সুতরাং, আমি কি ছিল
নিয়ামকের ভিউডিডলড পদ্ধতিতে:
// Install a pan gesture recognizer // We ignore all the touches except the first and try to prevent other pan gestures
// by registering this object as the recognizer's delegate
UIPanGestureRecognizer *recognizer;
recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanFrom:)];
recognizer.delegate = self;
recognizer.maximumNumberOfTouches = 1;
[self.view addGestureRecognizer:recognizer];
self.panGestureFixer = recognizer;
[recognizer release];
তারপরে, অঙ্গভঙ্গি ওভাররাইড পদ্ধতি:
// Control gestures precedence
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
// Prevent all panning gestures (which do nothing but scroll webViews, something we want to disable in
// the most painless way)
if ([otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]])
{
// Just disable every other pan gesture recognizer right away
otherGestureRecognizer.enabled = FALSE;
}
return NO;
}
অবশ্যই, এই প্রতিনিধি পদ্ধতিটি আমাকে সত্যিকারের অ্যাপ্লিকেশনটিতে আরও জটিল করে তুলতে পারে - আমরা অন্যান্য সনাক্তকারীকে বাছাই করে অক্ষম করতে পারি, অন্যান্য জেচারআরকনাইজার.ভিউ বিশ্লেষণ করে এটি কী দৃষ্টিকোণের ভিত্তিতে সিদ্ধান্ত নিতে পারে।
এবং পরিশেষে, সম্পূর্ণতার স্বার্থে, প্যান হ্যান্ডলার হিসাবে আমরা যে পদ্ধতিটি নিবন্ধভুক্ত করেছি:
- (void)handlePanFrom:(UIPanGestureRecognizer *)recognizer
{
// do nothing as of yet
}
এটি কেবল খালি হতে পারে যদি আমরা ওয়েব ভিউ'র স্ক্রোলিং এবং বাউন্সিং বাতিল করতে চাই বা আমাদের সত্যিকারের প্যান মোশন এবং অ্যানিমেশনগুলি প্রয়োগ করতে এটিতে নিজস্ব কোড থাকতে পারে ...
এখনও অবধি আমি এই সমস্ত স্টাফ নিয়ে পরীক্ষা নিরীক্ষা করছি এবং মনে হচ্ছে এটি আমার কমবেশি কাজ করছে। যদিও আমি এখনও আইস্টোরে কোনও অ্যাপ্লিকেশন জমা দেওয়ার চেষ্টা করি নি। তবে আমি বিশ্বাস করি আমি এখনও অবধি নিবন্ধিত কিছু ব্যবহার করি নি ... কেউ যদি অন্যথায় এটি খুঁজে পায় তবে দয়া করে আমাকে জানান।