2015-01-25 4 views
1

Как настроить начальный фокус на странице HTML с помощью UIWebView. Например, ниже представлена ​​страница HTML. Если я загружу это в UIWebView, он отображает из (0,0) координат вида HTML. Но я хочу изменить начальную позицию, как описано ниже. Я попытался изменить смещение, но не использовать.Как установить начальную позицию UIWebView?

webView.scrollView.contentOffset = CGPointMake (100, 100).

enter image description here

ответ

0

Вы, вероятно, не трудно код это, потому что по одной причине, это жестко. Если Google или какой-либо веб-сайт, который вы хотите отобразить, изменяет их макет, ваши позиции будут устаревшими. И вам придется повторно отправить все свое приложение, чтобы отключить его.

Моя рекомендация - использование автоматического макета и «страницы весов для соответствия» для UIWebView.

Но ваш код является точным. Убедитесь, что вы положили его в webViewDidFinishLoad: или viewDidLoad и ваш UIWebViewDelegate & UIScrollViewDelegate добавляются в файл заголовка и называется в файле реализации:

self.webView.delegate = self; 
self.webView.scrollView.delegate = self; 
+0

Я упомянул Google.com, например .. Мне нужно изменить смещение для файла PDF .. исправлено в моем вопросе как Что ж.. – Coder

0
  1. Место в UIWebView в подвид. Общий UIView будет работать.
  2. При создании экземпляра UIWebView придайте ему границы экрана с чуть меньшей шириной, чем содержащий UIView. Странно, я знаю.
  3. Установите contentOffset в UIWebView в методе webViewDidFinishLoad вашего UIWebViewDelegate

Следующий код работает для меня, в Xcode 6.1.1. Чтобы проверить, просто сделать этот ViewController класс контроллер представления корневой для вашего приложения:

import UIKit 

    class ViewController: UIViewController, UIWebViewDelegate { 

     override func loadView() { 

      let screenBounds : CGRect = UIScreen.mainScreen().bounds 

      var slimmerBounds : CGRect = UIScreen.mainScreen().bounds 
      slimmerBounds.size.width = slimmerBounds.size.width - 1 

      let webView = UIWebView(frame: slimmerBounds) 
      let url = NSURL (string: "http://google.com/") 
      let req = NSURLRequest(URL: url!) 
      webView.loadRequest(req) 
      webView.delegate = self; 
      let contentView = UIView(frame: screenBounds) 
      contentView.addSubview(webView) 
      self.view = contentView 
     } 

     func webViewDidFinishLoad(webView: UIWebView) { 
      webView.scrollView.contentOffset = CGPointMake(0, 100) 
      webView.bounds = UIScreen.mainScreen().bounds 
     } 
    } 

Кстати ... это установит начальное положение всех URL-адресов, загруженных в эту веб-представления. Если вы хотите только разместить первую страницу, вам нужно добавить дополнительную логику к webViewDidFinishLoad

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