আইওএসে প্রোগ্রামিয়ালি ইউআইআইমেজভিউতে ইভেন্ট ক্লিক করুন


96

আমি কোড থেকে এখানে একটি চিত্র প্রদর্শিত হচ্ছে কোড

UIImageView *preArrowImage =[[UIImageView alloc]init ];
preArrowImage.image =[UIImage imageNamed:@"arrowprev.png"];
preArrowImage.frame = CGRectMake(20, 60, 10, 30);
[self.view addSubview:preArrowImage];

আমি প্রিআরআইমেজ প্রোগ্রামে টাচ ইভেন্টটি পরিচালনা করতে চাই।


এই কিছু ব্যবহার হতে পারে stackoverflow.com/questions/9008975/...
Gaz_Edge

এই উত্তরটি চেক করুন আপনাকে http://stackoverflow.com/a/41328885/3177007
মোহাম্মদ জালিল নাজির

উত্তর:


253

উদ্দেশ্য গ

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)];
singleTap.numberOfTapsRequired = 1;
[preArrowImage setUserInteractionEnabled:YES];
[preArrowImage addGestureRecognizer:singleTap];

-(void)tapDetected{
    NSLog(@"single Tap on imageview");
  }

সুইট 4.2 / 5

let preArrowImage : UIImageView // also give it frame
let singleTap = UITapGestureRecognizer(target: self, action: #selector(tapDetected))
preArrowImage.isUserInteractionEnabled = true
preArrowImage.addGestureRecognizer(singleTap)

//Action
@objc func tapDetected() {
    print("Imageview Clicked")
}

সুইফট 2-এর জন্য আপনার Selector("tapDetected")সাথে প্রতিস্থাপন করা উচিত :"tapDetected:"
দাতায়াহ

ডিফল্টরূপে সিঙ্গেল ট্যাপ.নম্বার অফট্যাপস প্রয়োজনীয় = 1, শুভ কোডিং ধন্যবাদ
রবি

'দিন singleTap = UITapGestureRecognizer (#selector (NavigationViewController.tapDetectedImage) লক্ষ্য: স্ব, অ্যাকশন)'
Alex22

18

কেবল ইমেজটিতে একটি যুক্ত UITapGestureকরুন তবে এটির ব্যবহারকারীর প্রবেশদ্বার সক্ষম করার কথা মনে রাখবেন ।

    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self 
    action:@selector(singleTapGestureCaptured:)];
    [preArrowImage addGestureRecognizer:singleTap];
    [preArrowImage setMultipleTouchEnabled:YES];
    [preArrowImage setUserInteractionEnabled:YES];

6

এখন সুইফটে!

let singleTap = UITapGestureRecognizer(target: self, action: Selector("tapDetected"))
singleTap.numberOfTapsRequired = 1

preArrowImage.userInteractionEnabled = true
preArrowImage.addGestureRecognizer(singleTap)


//Action
func tapDetected() {
    println("Single Tap on imageview")
}

4

সুইফট 3

উপর UIImageView UserInterAction সক্ষম

 override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesEnded(touches, with: event)

        if let touch = touches.first {
            if touch.view == self.imgVwPostPreview { //image View property

                //Do your actions
                //self.delegate?.didClickOnCellImageView(indexPath: self.cellIndexPath!)
            }
        }
    }

3

দৃশ্যের সাথে কন্ট্রোলারটিতে স্টোরি বোর্ড ব্যবহার করা হচ্ছে।
চিত্রটি ইমেজভিউ, ইউআইভিউ, ইউআইএলবেল, টেক্সটফিল্ড বা অন্যান্য নিয়ামক হতে পারে


অঙ্গভঙ্গি শনাক্তকারীদের একটি নির্বাচন করার পরে এটিকে আপনার নিয়ামকের কাছে টেনে আনুন।
এখন এটি "ডকুমেন্ট আউটলাইন" এবং ভিউ কন্ট্রোলার xib এর শিরোনামে প্রদর্শিত হবে।

ডকুমেন্ট আউট লাইন এবং xib এ অঙ্গভঙ্গি আইকন
অঙ্গভঙ্গিটি ইউআইএলএবেলে টেনে আনুন
অঙ্গভঙ্গিটি ইউআইএলএবেলে টেনে আনুন


শিরোনাম ফাইলে ম্যানুয়ালি (আইবিএક્શન) পদ্ধতি তৈরি করুন


শিরোলেখ ফাইলটিতে আইবিএક્શન পদ্ধতি তৈরি করুন
এখন এটি হ্যান্ডলার থেকে এক্সবিতে অঙ্গভঙ্গির আইকনে টানুন
এটি অঙ্গভঙ্গি আইকনটির সাথে লিঙ্ক করুন


0

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

আরও তথ্যের জন্য এই প্রশ্নের আমার উত্তরটি পরীক্ষা করুন: কীভাবে আপনি স্টোরিবোর্ডে ক্লিকযোগ্য (সুইফট) একটি ইউআইআইমেজভিউ তৈরি করবেন?


0

এখানে আরও একটি বিকল্প রয়েছে: প্রতারণা।

মানে, দেরি করে ভাবি।

আপনি যেভাবে চান, ক্রপ করুন, দিক ফিট করুন, যাই হোক না কেন আপনার ইউআইআইজেজ সেট আপ করুন।

এটি ইউআইভিউ (সমান মাত্রা, অবস্থান ইত্যাদি) দিয়ে ওভারলে করুন

ক্লিয়ারকলার এবং ক্লাসটি ইউআইসিএন্ট্রোলতে সেট করুন।

ইভেন্টটির অভ্যন্তরে টাচ আপটিকে আপনার হ্যান্ডলারের দিকে এবং ভয়েলা দিকে নির্দেশ করুন।


ইউআইভিউয়ের চেয়েও সহজ: একটি বোতাম ব্যবহার করুন এবং পাঠ্যটি মুছুন। ;)
নেফহ

0

Xamarin.iOS

UIImageView preArrowImage; // also give it frame
var singleTap = new UITapGestureRecognizer(TapDetected);
singleTap.ShouldReceiveTouch -= TapGesture_ShouldReceiveTouch;
singleTap.ShouldReceiveTouch += TapGesture_ShouldReceiveTouch;
preArrowImage.UserInteractionEnabled = true;
preArrowImage.AddGestureRecognizer(singleTap)

bool TapGesture_ShouldReceiveTouch(UIGestureRecognizer recognizer, UITouch touch)
{
    return true;
}

void TapDetected(UITapGestureRecognizer tapGestureRecognizer)
{
    print("Imageview Clicked")
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.