swift webView 提出这样的要求你能忍吗?

提出的要求是:webView字体显示大小合适,里面会有大的图片,大的表格,不能按比例缩放,可以左右滑动查看。

首先,如果要满足上面的要求需要将webView放入scrollView中显示

scrollView.addSubview(webView)

然后设置webView的属性

webView.scrollView.alwaysBounceHorizontal = true
webView.scrollView.alwaysBounceVertical = false

上面代码禁止了webView垂直方向上的滚动,允许水平滚动。

接下来实现代理方法(先遵守协议:UIWebViewDelegate)

func webViewDidFinishLoad(webView: UIWebView)
{
    webView.frame = CGRectMake(0, 0, KScreenWidth, webView.scrollView.contentSize.height)
    scrollView.contentSize = CGSizeMake(KScreenWidth, webView.scrollView.contentSize.height)
}

修改webView的frame,和scrollView的内容视图的contentSize,以便将webView的内容全部显示完。

如果觉得字体大小不合适,可以加入js代码来修改

self.webView.stringByEvaluatingJavaScriptFromString("document.getElementsByTagName(‘body‘)[0].style.webkitTextSizeAdjust= ‘110%‘")
时间: 2024-11-24 23:45:22

swift webView 提出这样的要求你能忍吗?的相关文章

swift webView的高度自适应内容

废话不多 直接上代码 //在webView的协议方法里实现以下代码 func webViewDidFinishLoad(webView: UIWebView) {//加载完成 //        self.view.addSubview(webView) webView.scrollView.mj_header.endRefreshing() self.mainView.removeFromSuperview() //计算webView内容的高度 然后去改变webView的高度 嗯呢 就是这样

Swift学习2---函数和闭包

函数 Swift使用func关键字声明函数: func greet(name: String, day: String) -> String { return "Hello \(name), today is \(day)." } greet("Bob", "Tuesday") 通过元组(Tuple)返回多个值: func getGasPrices() -> (Double, Double, Double) { return (3.5

Swift中协议的简单介绍

熟悉objective-c语言的同学们肯定对协议都不陌生,在Swift中苹果将 protocol 这种语法发扬的更加深入和彻底.Swift语言中的 protocol 不仅能定义方法还能定义属性,配合 extension 扩展的使用还能提供一些方法的默认实现,而且不仅类可以遵循协议,现在的枚举和结构体也能遵循协议了.基于此本文从 1,协议中定义属性和方法 , 2,协议的继承.聚合.关联类型 , 3,协议的扩展 , 4,Swift标准库中常见的协议 , 5,为什么要使用协议 5个方面结合自身的学习经

swift开发之--Protocol(协议)

使用object-c语言的同学们肯定对协议都不陌生,但在swift中苹果将protocol这种语法发扬的更加深入和彻底. Swift中的protocol不仅能定义方法还能定义属性,配合extension扩展的使用还能提供一些方法的默认实现,而且不仅类可以遵循协议,现在的枚举和结构体也能遵循协议了. 基于此本文从 : 1,协议中定义属性和方法, 2,协议的继承.聚合.关联类型, 3,协议的扩展, 4,Swift标准库中常见的协议, 5,为什么要使用协议 5个方面结合自身的学习经验简单介绍一下这种"

JSBridge深度剖析

概述 做过混合开发的人都知道Ionic和PhoneGap之类的框架,这些框架在web基础上包装一层Native,然后通过Bridge技术的js调用本地的库. 在讲JSBridge技术之前,我们来看一下传统的实现方式. Android端 Native调JS native调用js比较简单,只要遵循:"javascript: 方法名('参数,需要转为字符串')"的规则即可. 在4.4之前,调用的方式: // mWebView = new WebView(this); mWebView.loa

Hybrid APP之Native和H5页面交互

Hybrid APP之Native和H5页面交互原理 Hybrid APP的关键是原生页面与H5页面直接的交互,如下图,痛过JSBridge,H5页面可以调用Native的api,Native也可调用H5页面的方法或者通知H5页面回调 在Hybrid APP中,原生与H5的交互方式在Android和iOS上的实现是有异同的,原因是Android.iOS的通信机制有所区别,下面介绍原生和H5相互调用的方法 Native与H5交互的两种方式 原生和前端的交互有两种方式:url scheme以及Jav

Hybrid App技术解析

随着 Web 技术和移动设备的快速发展,Hybrid 技术已经成为一种最主流最常见的方案.一套好的 Hybrid架构方案 能让 App 既能拥有极致的体验和性能,同时也能拥有 Web技术 灵活的开发模式.跨平台能力以及热更新机制. 现有混合方案 Hybrid App,俗称混合应用,即混合了 Native技术 与 Web技术 进行开发的移动应用.现在比较流行的混合方案主要有三种,主要是在UI渲染机制上的不同: 基于 WebView UI 的基础方案,市面上大部分主流 App 都有采用,例如微信JS

适配swift3

Any vs AnyObject 将项目里的 AnyObject 转成 Any 可能是大家遇到的第一件适配大事.如何解释这个变化呢?在 Swift 3 之前,我们可以写完一个项目都只用 AnyObject 来代表大多数实例,好像不用与 Any 类型打交道.但事实上,Any 和 AnyObject 是有明显区别的,因为 Any 可以代表 struct.class.func 等等几乎所有类型,而 AnyObject 只能代表 class 生成的实例. 那为什么之前我们在 Swift 2 里可以用 [

Swift 为你的webView定制标题

有些情况下,应用中会使用webView来加载大段的文字,而且还是带各种标签的. 不能全部过滤掉,那样的话,内容就会失去原本想表达的格式. 可是,如果webView中并没有将内容的标题或其他杂项包含进那一大段内容,而是单独的存放在字典的另一个字段中,而且此时是不带任何标签的纯文本. 而且最终的页面又需要同时显示这些内容,这样的境地就比较尴尬了. 接下来这种方案可以缓解这种尴尬: 首先介绍一下实现思路:scrollView加在self.view上沾满屏幕,scrollView的顶部留出一段空白用于放