1、contentSize 这个属性,比uiscrollview的frame要小, 无需滚动, 自然就滚动不了。 scrollenabled 这个属性,标识着是否允许滚动,要言设成yes
2、如果这个scrollView是在IB里面生成的话,还得手动设置它的contentSize,并且不能在initWithNibName:bundle:里面设置,因为:
The nib file you specify is not loaded right away. It is loaded the first time the view controller’s view is accessed. If you want to perform additional initialization after the nib file is loaded, override the viewDidLoad method and perform your tasks there.
3、在self.view上添加scrollview 能正常滚动,但再次添加其他的view的时候,就不能正常滚动了,必须用下面的一个方法才行,很好用。
附加:
这个方法在controller的的子视图的position和size被改变的时候被调用。
在view 已经被设计好了它的subviews并且还没有被展示在屏幕上时候,可以调用此方法改变这个view。
关键点是改变边界。任何依赖于bounds,并且需要去完成的 *** 作都应该放在viewDidLayoutSubviews中,而不是viewDidLoad或viewWillAppear中。
因为view的frame和bounds直到Auto Layout 已经完成工作的时候才会被确定,所以在执行完Auto Layout之后会调用此方法。
WKWebView 是在 Apple 的 WWDC 2014 随 iOS 8 和 OS X 10.10 出来的,是为了解决 UIWebView 加载速度慢、占用内存大的问题。使用 UIWebView 加载网页的时候,我们会发现内存会无限增长,还有内存泄漏的问题存在。
WebKit 中更新的 WKWebView 控件的新特性与使用方法,它很好的解决了 UIWebView 存在的内存、加载速度等诸多问题。
在性能、稳定性、功能方面有很大提升(最直观的体现就是加载网页是占用的内存);
允许 JavaScript 的 Nitro 库加载并使用( UIWebView 中限制);
支持了更多的 HTML5 特性;
高达 60fps 的滚动刷新率以及内置手势;
将 UIWebViewDelegate 与 UIWebView 重构成了14类与3个协议 查看苹果官方文档 ;
简单使用,直接加载url地址
自定义配置
再 WKWebView 里面注册供 JS 调用的方法,是通过 WKUserContentController 类下面的方法:
实现 WKScriptMessageHandler 协议方法
注意:上面将当前 ViewController 设置为 MessageHandler 之后需要在当前 ViewController 销毁前将其移除,否则会造成内存泄漏。
如果实现了代理方法,一定要在 decidePolicyForNavigationAction 和 decidePolicyForNavigationResponse 方法中的回调设置允许跳转。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)