জ্যানোর উত্তর আমার পক্ষে কাজ করেছে, তাই আমি ভেবেছিলাম আমি সুইফট 4 / এক্সকোড 9 এর জন্য একটি আপডেট সংস্করণ রেখে যাব কারণ আমি উদ্দেশ্য সি তে বিশেষ দক্ষ নই এবং আমি নিশ্চিত যে আরও কয়েকজন আছে যা এখনও নেই।
পদক্ষেপ 1: দ্যডলিডে এই কোডটি যুক্ত করুন:
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(didDragMap(_:)))
panGesture.delegate = self
পদক্ষেপ 2: নিশ্চিত করুন যে আপনার শ্রেণিটি ইউআইজিস্টেকার সনাক্তকারী ডেলিগেটের সাথে সম্মত হয়েছে:
class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate, UIGestureRecognizerDelegate {
পদক্ষেপ 3: আপনার প্যানস্টেচার অন্যান্য অঙ্গভঙ্গির সাথে একযোগে কাজ করবে তা নিশ্চিত করতে নিম্নলিখিত ফাংশন যুক্ত করুন:
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
পদক্ষেপ 4: এবং জানো যথাযথভাবে উল্লেখ করেছেন বলে আপনার পদ্ধতিটি নিশ্চিত করে "প্রতি টেনে 50 বার" বলা হয় না:
@objc func didDragMap(_ gestureRecognizer: UIPanGestureRecognizer) {
if (gestureRecognizer.state == UIGestureRecognizerState.ended) {
redoSearchButton.isHidden = false
resetLocationButton.isHidden = false
}
}
* শেষ পদক্ষেপে @objc যোগ করার বিষয়টি নোট করুন। সংকলনের জন্য এক্সকোড আপনার ক্রিয়ায় এই উপসর্গটিকে বাধ্য করবে force
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
কাজটি করেছে