ios - কিভাবে Swift মধ্যে UIImageView বস্তুর জন্য একটি কর্ম বরাদ্দ করতে




(6)

সুইফ্ট 4 কোড

পদক্ষেপ 1 ViewdidLoad ()

   let pictureTap = UITapGestureRecognizer(target: self, action: #selector(MyInfoTableViewController.imageTapped))
       userImageView.addGestureRecognizer(pictureTap)
       userImageView.isUserInteractionEnabled = true

পদক্ষেপ 2 নিম্নলিখিত ফাংশন যোগ করুন

@objc func imageTapped() {

        let imageView = userImageView
        let newImageView = UIImageView(image: imageView?.image)
        newImageView.frame = UIScreen.main.bounds
        newImageView.backgroundColor = UIColor.black
        newImageView.contentMode = .scaleAspectFit
        newImageView.isUserInteractionEnabled = true
        let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage))
        newImageView.addGestureRecognizer(tap)
        self.view.addSubview(newImageView)

        self.navigationController?.isNavigationBarHidden = true
        self.tabBarController?.tabBar.isHidden = true

    }

এটা পরীক্ষিত এবং সঠিকভাবে কাজ করা হয়

https://code.i-harness.com

আমি একটি UIImageView বরাদ্দ করার চেষ্টা করছি যখন ব্যবহারকারী এটি নষ্ট করে।

আমি একটি UIButton জন্য একটি পদক্ষেপ তৈরি করতে জানি, কিন্তু কিভাবে আমি UIButton এর একই আচরণকে অনুকরণ করতে পারি, কিন্তু একটি UIImageView ব্যবহার করে?


আপনি UIButton উপরে একটি স্বচ্ছ ব্যাকগ্রাউন্ড সহ একটি UIButton লাগাতে পারেন এবং চিত্রটি লোড করার আগে বোতামে একটি ট্যাপ শুনতে পান


আপনি আপনার UIImageView অঙ্গভঙ্গি সনাক্তকারী যুক্ত করতে হবে (ট্যাপ ব্যবহারের জন্য UITapGestureRecognizer , আলতো চাপার জন্য UITapGestureRecognizer ব্যবহার UILongPressGestureRecognizer )।

let tap = UITapGestureRecognizer(target: self, action: #selector(YourClass.tappedMe))
imageView.addGestureRecognizer(tap)
imageView.isUserInteractionEnabled = true

এবং নির্বাচক পদ্ধতি যেমন বাস্তবায়ন:

@objc func tappedMe()
{
    println("Tapped on Image")
}

আপনি একটি UITapGestureRecognizer প্রয়োজন হবে। এই ব্যবহার সেট আপ করতে:

override func viewDidLoad()
{
    super.viewDidLoad()

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))
    imageView.isUserInteractionEnabled = true
    imageView.addGestureRecognizer(tapGestureRecognizer)
}

func imageTapped(tapGestureRecognizer: UITapGestureRecognizer)
{
    let tappedImage = tapGestureRecognizer.view as! UIImageView

    // Your action
}

(আপনি একটি UIButton ব্যবহার করতে পারেন এবং পাঠ্য ছাড়া এবং কেবল একটি আইবিএকশন সংযোগ করার চেয়ে এটিতে একটি চিত্র বরাদ্দ করতে পারেন)


দ্রুত 2.0 এবং এর জন্য এই কাজ

@IBOutlet weak var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let tap = UITapGestureRecognizer(target: self, action: #selector(ViewController.tappedMe))
        imageView.addGestureRecognizer(tap)
        imageView.userInteractionEnabled = true
    }
    func tappedMe()
    {
        print("Tapped on Image")
    }

Swift4 কোড

এই নতুন এক্সটেনশন পদ্ধতি চেষ্টা করুন:

import UIKit

extension UIView {

    fileprivate struct AssociatedObjectKeys {
        static var tapGestureRecognizer = "MediaViewerAssociatedObjectKey_mediaViewer"
    }

    fileprivate typealias Action = (() -> Void)?


    fileprivate var tapGestureRecognizerAction: Action? {
        set {
            if let newValue = newValue {
                // Computed properties get stored as associated objects
                objc_setAssociatedObject(self, &AssociatedObjectKeys.tapGestureRecognizer, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN)
            }
        }
        get {
            let tapGestureRecognizerActionInstance = objc_getAssociatedObject(self, &AssociatedObjectKeys.tapGestureRecognizer) as? Action
            return tapGestureRecognizerActionInstance
        }
    }


    public func addTapGestureRecognizer(action: (() -> Void)?) {
        self.isUserInteractionEnabled = true
        self.tapGestureRecognizerAction = action
        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTapGesture))
        self.addGestureRecognizer(tapGestureRecognizer)
    }


    @objc fileprivate func handleTapGesture(sender: UITapGestureRecognizer) {
        if let action = self.tapGestureRecognizerAction {
            action?()
        } else {
            print("no action")
        }
    }

}

এখন যখনই আমরা UITapGestureRecognizer যুক্ত করতে চাই একটি UITapGestureRecognizer বা UIImageView subclass তে UIImageView মত, আমরা নির্বাচকদের জন্য সংশ্লিষ্ট ক্রিয়াকলাপ তৈরি না করেই এটি করতে পারি!

ব্যবহার:

 profile_ImageView.addTapGestureRecognizer {
        print("image tapped")
    }




uiimageview