您遇到的 HTML 不适合 UIWebView 的问题并不容易解决,但我可以给您一个技巧,让您的内容显示在屏幕上。
问题在于 Maxpreps 从其小部件中的 URL 加载的网页并非旨在完全适合纵向的 iPhone。然而,它是一个响应式 HTML 页面,所以这是个好消息。
首先,您不需要加载脚本标签或编写 HTML 文件,因为您只需点击一个链接,对吗?你不想要那个链接,你想要链接后面的内容,对吧?希望!
这个视图控制器实现应该可以正常工作:
import UIKit
class ViewController: UIViewController {
@IBOutlet var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// This will force the UIWebView to downscale and fit your page, but
// it is hacky because 91% of original size might not always be the
// right amount. This is why I said it is hard.
self.webView.scrollView.minimumZoomScale = 0.3
self.webView.scrollView.maximumZoomScale = 2.0
self.webView.scrollView.setZoomScale(0.91, animated: false)
}
override func viewWillAppear(animated: Bool) {
if let url = NSURL(string: "http://www.maxpreps.com/local/team/home.aspx?gendersport=boys,baseball&schoolid=45823724-55bc-4d89-926b-b1974b3d8e36") {
let request = NSURLRequest(URL: url)
webView.loadRequest(request)
}
else {
println("Failed to create URL")
}
}
}
上述方法可行,但恕我直言,更好的解决方案是:
1) 要求 Maxpreps 修复其响应式 HTML 页面,以便它在 iPhone 上以纵向呈现
2) 完全抛弃 HTML 并使用 REST API 查询您需要的信息(如果他们提供可用的信息),然后编写一个原生的非 HTML 屏幕
3) 尝试找到可行的动态缩放解决方案。根据我的经验,这些很容易失败
Here is what I see on my simulator when I run it:
Another example: