2016-07-10 2 views
0

Я загружаю веб-представление в своем приложении для iOS.iOS Swift Webview показать изображение во время загрузки

Можно ли показывать изображение при загрузке Webview в фоновом режиме?

Я нашел что-то для Objective-C, но ничего для Swift 2.2.

Как определить, закончилась ли загрузка веб-представления?

Edit:

func webViewDidStartLoad(webView: UIWebView!) { 
    loadingView.viewWithTag(1)?.hidden = false 
    print("Webview started Loading") 
    } 

func webViewDidFinishLoad(webView: UIWebView!) { 
loadingView.viewWithTag(1)?.hidden = true 
print("Webview did finish load") 
} 

от: How to show image while page is loading in swift?

+0

Обеспечить некоторый код, вы пробовали – nmnsud

+0

редактировал свой пост. я не понимаю, где разместить изображение в раскадровке. Я имею в виду, что я не могу разместить его над веб-просмотром ?! – simplesystems

+0

Проверьте мое редактирование @simplesystems –

ответ

1

Так, наконец, его работы ...

Вот мое решение для Swift 2.2

class YourViewController: UIViewController, UIWebViewDelegate { 

    @IBOutlet weak var webView: UIWebView! 

    override func viewDidLoad() { 

    super.viewDidLoad() 

    // For the Loading image: Create an ImageView programmatically and add id to the view 
     let imageName = "YourPicture.png" 
     let image = UIImage(named: imageName) 
     let imageView = UIImageView(image: image!) 
     imageView.tag = 1; 
     imageView.frame = CGRect(x: 50, y: 250, width: 300, height: 100) 
     view.addSubview(imageView) 


     let url = "http://apple.com" 

     let requestURL = NSURL(string:url) 
     let request = NSURLRequest(URL: requestURL!) 
     webView.delegate = self 
     webView.loadRequest(request)   

    } 

    func webViewDidFinishLoad(webView: UIWebView) { 

     // UIWebView object has fully loaded. 
     if(webView.stringByEvaluatingJavaScriptFromString("document.readyState") == "complete") { 

     // Manually add a delay, showing the Webview takes some time.. 
     // For Swift 2.2 
     let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 2 * Int64(NSEC_PER_SEC)) 

     dispatch_after(time, dispatch_get_main_queue()) { 
     //put your code which should be executed with a delay here 

      self.view.viewWithTag(1)?.hidden = true} 
     } 

     print("Webview did finish load") 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

} 
1

Соответствует протокол UIWebViewDelegate и установить контроллер представления в качестве делегата веб-представления. После завершения загрузки вызывается функция webViewDidFinishLoad (_ webView: UIWebView). Вы можете установить свое изображение через веб-представление в начале, а затем очистить его в этой функции.

Edit:

Я не могу разместить его на веб-просмотра можно?

Да, делайте именно это. Если вы установите скрытое изображение, это не повлияет на взаимодействие пользователя с веб-представлением.

+0

i can not, когда я помещаю просмотр изображения, веб-сайт заменяется .. – simplesystems

+0

@simplesystems Что значит, веб-просмотр заменен? Если вы поместите изображение через веб-представление, а затем установите его в скрытое, вы сможете увидеть веб-представление, а не изображение. Это не так? –

+0

, если вы разместите изображение над веб-просмотром в раскадровке .. тогда веб-просмотр удаляется. – simplesystems

Смежные вопросы