swift - 重新加载 UIWebView 的按钮

标签 swift uibutton

我在 UIWebView 之上创建了一个按钮,我想在按下时使用它来刷新 webview。以下代码在我的 ViewController 类中:

@IBOutlet weak var webView: UIWebView!

override func shouldAutorotate() -> Bool {
    return false
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.Landscape
}

override func viewDidLoad() {
    super.viewDidLoad()
    let webView:UIWebView = UIWebView(frame: CGRectMake(30, 20, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
    let button = UIButton(type: .System)

    webView.scalesPageToFit = true
    webView.multipleTouchEnabled = true
    webView.backgroundColor = UIColor.whiteColor()
    webView.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.example.com")!))
    self.view.addSubview(webView)

    button.frame = CGRectMake(20, -20, 100, 100)
    button.setTitle("Refresh", forState: UIControlState.Normal)
    button.addTarget(self, action: Selector(reload()), forControlEvents: UIControlEvents.TouchUpInside)
    webView.insertSubview(button, aboveSubview: webView)
}

func reload() {
    webView.reload()
}

我已经创建了 reload 方法来刷新 webView 但是当我点击按钮时没有任何反应。我还尝试在 viewDidLoad 中创建 reload 方法,看看这是否解决了问题。是什么导致了这个问题?

最佳答案

Action :选择器(重新加载())

语法错误。在 Xcode 7.2 及以下版本上,它应该是

action: Selector("reload")

在 Xcode 7.3 及更高版本上它应该是

Action :#selector(ClassName.funcName)

在 Xcode 7.2 中,整个事情应该是

let webView:UIWebView = UIWebView(frame: CGRectMake(30, 20, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))

override func viewDidLoad() {
    super.viewDidLoad()

    let button = UIButton(type: .System)

    webView.scalesPageToFit = true
    webView.multipleTouchEnabled = true
    webView.backgroundColor = UIColor.whiteColor()
    webView.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.example.com")!))
    self.view.addSubview(webView)

    button.frame = CGRectMake(20, -20, 100, 100)
    button.setTitle("Refresh", forState: UIControlState.Normal)
    button.addTarget(self, action: Selector("reload"), forControlEvents: .TouchUpInside)
    webView.insertSubview(button, aboveSubview: webView)
}

func reload() {
    webView.reload()
}

关于swift - 重新加载 UIWebView 的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38860696/

相关文章:

Swift 3 - CGAffineTransform 不起作用

swift - 将大文件上传到 oneDrive iOS SDK 的一个驱动器?

ios - 如何在 Swift 中旋转 UIButton?

具有返回类型重载的 Swift 泛型函数调用函数

ios - UIButtons 的动画位置导致它们停止接收触摸 Action

swift 类型类没有成员函数

ios - UIButton 在 uiscrollView 中不起作用

swift - UITextField rightView 图像和按钮?

ios - 为什么 UIButton 使用 Target Action 设计模式而不是 UITextField 的委托(delegate)模式,反之亦然

iphone - 使用 UIButton 按下传递对象数据