私は最初にiOS
アプリを書いています。Swift
を使用していますが、UIButton
には開始/一時停止機能があります。 Startをタップすると、画像はUIWebView
にロードされ、テキストがPauseに変更されます。一時停止をタップすると、webView
のロードが停止します。私は、次のアプローチにUButtonの起動/停止を内部で実装する
@IBOutlet weak var startPauseButton: UIButton!
@IBAction func startPauseButtonAction(sender: UIButton) {
if startPauseButton!.currentTitle == "Start"{
if let htmlURL = NSBundle.mainBundle().pathForResource("index", ofType: "html"){
// let htmlURL = NSBundle.mainBundle().URLForResource("index", withExtension: "html")
let requestURL = NSURL(string: htmlURL)
let requestObject = NSURLRequest(URL: requestURL!)
webView.sizeToFit()
webView.loadRequest(requestObject)
}else{
let url = NSBundle.mainBundle().URLForResource("video", withExtension: "html")
let requestObject = NSURLRequest(URL:url!);
webView.loadRequest(requestObject)
}
startPauseButton.setTitle("Pause", forState: UIControlState.Normal)
}else{
webView.stopLoading()
startPauseButton.setTitle("Start", forState: UIControlState.Normal)
}
}
を使用しています。しかし、このコードは一時停止するには、開始とその逆のテキストを変更している。
私が観察した
@IBOutlet weak var startPauseButton: UIButton!
@IBAction func startPauseButtonAction(sender: UIButton) {
// if startPauseButton!.currentTitle == "Start"{
if let htmlURL = NSBundle.mainBundle().pathForResource("index", ofType: "html"){
// let htmlURL = NSBundle.mainBundle().URLForResource("index", withExtension: "html")
let requestURL = NSURL(string: htmlURL)
let requestObject = NSURLRequest(URL: requestURL!)
webView.sizeToFit()
webView.loadRequest(requestObject)
}else{
let url = NSBundle.mainBundle().URLForResource("video", withExtension: "html")
let requestObject = NSURLRequest(URL:url!);
webView.loadRequest(requestObject)
}
startPauseButton.setTitle("Pause", forState: UIControlState.Normal)
/* }else{
webView.stopLoading()
startPauseButton.setTitle("Start", forState: UIControlState.Normal)
}
*/
}
、ボタンの第2のタップに、ビューはwebView
にロードされている、コードの下に実行されるとwebView
上のリソースをロードすることができません。この2番目のタブイベントを克服して最初のタブに変更し、この機能を実現するにはどうすればよいですか?このstackoverflowのスレッドで説明したように、次の
@IBAction func startPauseButtonAction(sender: UIButton) {
println("button has been tapped \(startPauseButton!.titleForState(.Normal))")
// if startPauseButton!.titleForState(.Normal) == "Start" {
if let htmlURL = NSBundle.mainBundle().URLForResource("index", withExtension: "html") {
let requestObject = NSURLRequest(URL: htmlURL)
webView.sizeToFit()
webView.loadRequest(requestObject)
}else{
let url = NSBundle.mainBundle().URLForResource("video", withExtension: "html")
let requestObject = NSURLRequest(URL:url!);
webView.loadRequest(requestObject)
}
startPauseButton.setTitle("Pause", forState: UIControlState.Normal)
/* }else{
webView.stopLoading()
startPauseButton.setTitle("Start", forState: UIControlState.Normal)
}*/
}
を実行する上で
EDIT 1
出力 button has been tapped Optional("Start") button has been tapped Optional("Pause")//here the webview is getting loaded button has been tapped Optional("Pause") button has been tapped Optional("Pause")
万が一、 'htmlURL'または' url'を 'nil'にすることはできますか? – ozgur
@ozgurはい、可能です – onkar