tapGesture hyperLink swift

时间:2015-08-07 22:44:34

标签: ios iphone swift

我有一张图片,当有人点击图片时,我希望它能够访问我的网站 我使用tapGesture将图像转换为一个大按钮,但我不知道该怎么做,就是我希望应用程序在用户点击图像时将用户带到我的网站

1 个答案:

答案 0 :(得分:0)

这取决于您希望链接打开的位置。这两种标准方法是在应用程序内部提供open the URL in a UIWebView,或者告诉系统在移动Safari浏览器中打开链接(将应用程序发送到后台)。

对我而言,这听起来像是你想要的第二种行为。您可以通过告诉UIApplication打开URL来实现它,如下所示:

@IBAction func linkTapped(sender:UITapGestureRecognizer) {

   if let url = NSURL(string: "http://stackoverflow.com/") {
       UIApplication.sharedApplication().openURL(url)
   }
}

编辑:

有关如何按照您描述的方式进行设置的更多信息:在viewDidLoad中,设置您的手势识别器:

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "linkTapped:")
self.yourImageView.addGestureRecognizer(tapGestureRecognizer)
self.yourImageView.userInteractionEnabled = true 

确保yourImageView的IBOutlet已正确连接。然后,只需将原始答案中给出的代码作为方法添加到包含viewDidLoad方法的同一个类中。如果手势识别器触发,它现在应该执行linkTapped:方法中的代码并打开URL。

编辑2:

因为它实际上适用于~10行代码,所以这里是一个最小视图控制器类作为示例实现。

class ViewController: UIViewController {

    @IBOutlet var myImageView: UIImageView! //Check if connected correctly!

    override func viewDidLoad() {
        super.viewDidLoad()

        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "linkTapped:")
        myImageView.addGestureRecognizer(tapGestureRecognizer)
        myImageView.userInteractionEnabled = true
    }

    func linkTapped(sender:UITapGestureRecognizer) {

        if let url = NSURL(string: "http://stackoverflow.com/") {
            UIApplication.sharedApplication().openURL(url)
        }
    }
}