在swift中单击UILabel时出现空白屏幕

时间:2015-10-10 03:23:40

标签: ios iphone swift uilabel

我正在尝试打开带有所选号码的iPhone通话屏幕,点击UIlabel,这是swift中的超链接。

出现空白屏幕1秒钟然后继续。没有iPhone通话屏幕出现。不知道我的代码有什么问题。

viewDidLoad中的代码

let strPhone = "080 2854 2105"

let attributedPhoneStr = NSMutableAttributedString(string:strPhone, attributes:[NSLinkAttributeName: NSURL(string: "http://aerospace.honeywell.com")!])

lblPhoneContact.attributedText = attributedPhoneStr

lblPhoneContact.userInteractionEnabled = true

let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelPressed"))

lblPhoneContact.addGestureRecognizer(gestureRecognizer)

功能labelPressed

func labelPressed() {      

let url:NSURL = NSURL(string: "tel://08028542105")!

UIApplication.sharedApplication().openURL(url)

}

我的代码中有什么错误或遗漏。 我试着在我的iPhone设备上运行。

3 个答案:

答案 0 :(得分:0)

快速使用

let url:NSURL = NSURL(string: "telprompt:08028542105")!

而不是

let url:NSURL = NSURL(string: "tel://08028542105")!

答案 1 :(得分:0)

您可以尝试使用GCD的dispatch_async来调用“openURL”方法:

dispatch_async(dispatch_get_main_queue()) { () -> Void in
    UIApplication.sharedApplication().openURL(url)
}

答案 2 :(得分:0)

你应该从uri中省略// - 即。它应该只是

let url:NSURL = NSURL(string: "tel:08028542105")!