UIWebView小技巧

Swift UIWebView的使用 swift结合webView定制浏览器 webview的介绍 webview的基本使用步骤 简单的浏览器效果实现 ·WebView的介绍 在IOS9中,涉及到对网页的操作,基本上都可以使用UIWebView的进行实现。你可以使用UIWebView Class将网页内容嵌入到你的APP内。UIWebView不仅支持外链内容的获取,而且可以加载本地HTML代码进行展示,对于IOS8以前(包括IOS8) 阅读详情

一. 在UIWebView中使用flashScrollIndicators

使用UIScrollView时,我们可以使用flashScrollIndicators方法显示滚动标识然后消失,告知用户此页面可以滚动,后面还有更多内容。UIWebView内部依赖于UIScrollView,但是其没有flashScrollIndicators方法,但可以通过其他途径使用此方法,如下所示。

for (id subView in [webView subviews]) {   if ([subView respondsToSelector:@selector(flashScrollIndicators)]) {     [subView flashScrollIndicators];   } }


上述代码片段可以到webViewDidFinishLoad回调中使用,加载完网页内容后flash显示滚动标识。

二.去除UIWebView的背景阴影

假设一个UIWebView是白底黑字的,当用户拖动UIWebView时,会看到后面的背景阴影,如下图所示。

可以使用下述代码去除阴影,并将背景设为白色。

if ([[webView subviews] count] > 0) {   // hide the shadows   for (UIView* shadowView in [[[webView subviews] objectAtIndex:0] subviews]) {     [shadowView setHidden:YES];   }   // show the content   [[[[[webView subviews] objectAtIndex:0] subviews] lastObject] setHidden:NO]; } webView.backgroundColor = [UIColor whiteColor];


使用此代码后的拖动效果如图所示。

三.根据内容获取UIWebView的高度

有时候需要根据不同的内容调整UIWebView的高度,以使UIWebView刚好装下所有内容,不用拖动,后面也不会留白。有两种方式可根据加载内容获取UIWebView的合适高度,但都需要在网页内容加载完成后才可以,即需要在webViewDidFinishLoad回调中使用。

1.使用sizeThatFits方法。

- (void)webViewDidFinishLoad:(UIWebView *)webView {     CGRect frame = webView.frame;     frame.size.height = 1;     webView.frame = frame;     CGSize fittingSize = [webView sizeThatFits:CGSizeZero];     frame.size = fittingSize;     webView.frame = frame; } 


sizeThatFits方法有个问题,如果当前UIView的大小比刚好合适的大小还大,则返回当前的大小,不会返回最合适的大小值,所以使用sizeThatFits前,先将UIWebView的高度设为最小,即1,然后再使用sizeThatFits就会返回刚好合适的大小。

2.使用JavaScript

  - (void)webViewDidFinishLoad:(UIWebView *)webView {     CGRect frame = webView.frame;     NSString *fitHeight = [webview stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"];     frame.size.height = [fitHeight floatValue];     webView.frame = frame; }


使用UIWebView的stringByEvaluatingJavaScriptFromString方法,执行JavaScript语句document.body.scrollHeight;可获取当前网页正文的全文高,测试时曾错误的使用了document.body.offsetHeight。

3.限制

这两种方法都只能在加载网页完成时才能使用,当在UITableView中的UITableViewCell包含UIWebView时,无法在tableView:heightForRowAtIndexPath:中获取到UIWebView最合适的高度,也就无法确定UITableViewCell的合适高度。 Any Ideas?

参考:
Three useful UIWebView tweaks
How to determine UIWebView height based on content, within a variable height UITableView?
How to determine the content size of a UIWebView?
clientHeight,offsetHeight和scrollHeight区别

HOPE:基于强化学习的混合策略路径规划器,适用于多样化停车场景 本文提出了一种混合策略路径规划器(HOPE),用于解决自动停车中的路径规划问题。HOPE结合了强化学习(RL)和Reeds-Shepp(RS)曲线,通过动作掩码机制引导RL智能体的探索,并利用Transformer融合环境感知信息与掩码。该方法在多样且复杂的停车场景中实现了超过97%的成功率,并通过真实实验验证了其泛化能力。此外,本文还提出了基于空间与障碍物分布的停车场景难度分级标准,进一步提升了训练与评估的效率。实验结果表明,HOPE在规划成功率和跨场景泛化能力上均优于传统的基于规则算法和朴素强化学习方法 阅读详情

相关推荐

【3D计算机视觉】从PointNet到PointNet++理论及pytorch代码

从PointNet到PointNet++理论及代码详解1. 点云是什么1.1 三维数据的表现形式1.2 为什么使用点云1.3 点云上以往的相关工作2. PointNet2.1 基于点云的置换不变性2.1.1 由对称函数到PointNet(vanilla)2.1.2 理论证明2.2 基于点云的旋转不变性2.3 网络总体结构2.4 实验结果和网络的鲁棒性2.5 代码解析3. PointNet++3.1...

小执着的博客 8万+

UIWebView的几个小技巧

一. 在UIWebView中使用flashScrollIndicators 使用UIScrollView时,我们可以使用flashScrollIndicators方法显示滚动标识然后消失,告知用户此页面可以滚动,后面还有更多内容。UIWebView内部依赖于UIScrollView,但是其没有flashScrollIndicators方法,但可以通过其他途径使用此方法,如下所示。 fo

编程进化论 3976

开关电源三大基本拓扑:反激、正激与桥式选型本质

开关电源拓扑是电力电子系统设计的核心基础概念,其本质决定能量传递路径、器件应力分布与系统物理边界。反激拓扑以耦合电感形式实现隔离与升降压,适用于小功率AC-DC场景;正激拓扑依赖实时能量传递与强制复位机制,支撑中功率高效率需求;桥式拓扑(含推挽/半桥/全桥)通过电压应力分摊与双向磁化,成为大功率系统的刚性选择。理解三者在磁芯工作模式、电流连续性、直流偏磁抑制等方面的原理差异,直接关系到效率、温升、EMI及可靠性等关键技术指标。本文聚焦反激、正激、桥式三大工程级基本拓扑的物理本质与落地约束,揭示从需求参数到电

cqwmy840702的博客 376

iOS flashScrollIndicators让滚动条多呆一会

观察了一下,iOS系统的通信录发现他们做的滚动条有一点小细节,滚动条刚出来的时候会闪一下,然后消失。 看了下api发现了这个一直没有用过的属性。 open func flashScrollIndicators() // displays the scroll indicators for a short time. This should be done whenever you bring t...

星宇大前端 1271

随机森林模型及案例(Python)

1 集成模型简介 集成学习模型使用一系列弱学习器(也称为基础模型或基模型)进行学习,并将各个弱学习器的结果进行整合,从而获得比单个学习器更好的学习效果。 集成学习模型的常见算法有Bagging算法和Boosting算法两种。 Bagging算法的典型机器学习模型为随机森林模型,而Boosting算法的典型机器学习模型则为AdaBoost、GBDT、XGBoost和LightGBM模型。 1.1 Bagging算法简介 Bagging算法的原理类似投票,每个弱学习器都有一票,最终根据所有弱学习器的投

qq_42433311的博客 4万+

OpenCV 常用的API总结(迅速查询)

OpenCV基本操作 openCV安装 读取图片(IO操作) 绘制集合图形 图像加法以及混合操作 OpenCV图像处理 图像几何变换 形态学操作 图像平滑 直方图 边缘检测 模板匹配 傅里叶变换 轮廓检测 图像分割 图像特征提取 SIFT检测关键点 视频读写............

Peyzhang的博客 3936

UITableView 一直显示滚动条(ScrollBar Indicators)、滚动条Width(宽度)、滚动条Color(颜色)...

在 IOS 中,对 UIScrollView 的滚动条(ScrollBar Indicators)的自定义设置接口,一直都是很少的。除了能自定义简单的样式(UIScrollViewIndicatorStyle)和是否启用外,对于 一直显示滚动条、自定义滚动条(ScrollBar Indicators)的Width 、颜色等,都是不能很方便的设置的。 虽然不能很方便,但是还是能实现的。通过一天的努力...

weixin_30332705的博客 361

perl 安装DBI和DBD

还可以从cpan.perl.org站点下载tar压缩文件形式的源代码发行版本,解压缩后,切换到相应的文件目录 cd DBI-1.54 perl Makefile.PL make make test make install 安装DBD时候 需要export ORACLE_HOME 验证安装: perldoc DBD::Oracle perldoc DBI 在线文档; perldoc -m

zhaoyangjian724的专栏 1754

iOS开发的一些小技巧

1.任意设置Cell选中状态的背景色: UIView *bgView = [[UIView alloc] init]; bgView.backgroundColor = [UIColor orangeColor]; self.selectedBackgroundView = bgView;该方法设置的是纯色, 也可以使用任何图片,把selectedBackgroundView设成UIImageVie

码虫儿 851

YOLOv8/v9 遥感图像目标检测实战指南:建筑物检测与变化监测

遥感图像在城市规划、灾害评估、农业监管等领域应用广泛,但传统目标检测方法存在效率低、精度不足、难以适配遥感图像大尺寸、多尺度目标等问题。本文以“建筑物检测与变化监测”为核心,基于DOTA、NWPU VHR-10等公开数据集,系统讲解YOLOv8/v9在遥感图像中的实战流程。从数据获取、格式转换、模型训练优化,到大图切片推理、建筑物变化监测,全程提供可复现的代码与参数配置。通过针对性优化(旋转增强、切片推理等),模型在NWPU VHR-10数据集上mAP50达0.85以上,可适配卫星影像、无人机航拍等多场景

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 520

Ubuntu24.04安装搜狗输入法详细教程

本章教程,介绍如何在Ubuntu24.04版本操作系统上安装搜狗输入法。

猿小白的博客 1万+

第十篇、让UIScrollView的滚动条常显

UIScrollView滚动条一直显示 1.我们知道滚动条是一个UIImageView, 滚动条隐藏是因为设置了alpha属性为0, 所有我们写一个UIImageView的分类 #define noDisableVerticalScrollTag 836913 #define noDisableHorizontalScrollTag 836914 @implementation UIIma...

weixin_33720452的博客 248

双目相机模型

近期想研究一下 双目相机 的内容,故先把 理论 弄清楚! 一、双目相机模型 针孔相机模型描述了 单个相机 的成像模型。然而,仅根据一个像素,我们是无法确定 这个空间点的具体位置的。这是因为,从相机光心到归一化平面连线上的所有点,都可以 投影至该像素上。只有当 P 的深度确定时(比如通过双目或 RGB-D 相机),我们才能确 切地知道它的空间位置。 测量像素距离(或深度)的方式有很多种,像人眼就可以根据左右眼看到的景物差异 (或称视差)来判断物体与我们的距离。双目相机的原理亦是如..

努力努力努力 2408

三个有用的UIWebView 技巧

本文翻译自:Three useful UIWebView tweaks 在iOS开发者中一个众所周知的事实就是,创建复杂的格式化文本是一件麻烦事。像UILabel,UITextView这些控件都不是被设计来实现这个目的的。克服这些局限性的替代方案是多用途的UIWebView结合一些本地HTML内容和CSS样式。 在这篇文章中,我们将分享三个小技巧,可能在结合使用UIWebView和其...

davidbull1987的博客 134

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

UIWebView的使用汇总

UIWebView是iOS sdk中一个最常用的控件。是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。大家先看一个简单的例子,做一个简易的浏览器。如下图: 我们创建一个Window-based Application程序命名为:UIWebViewDemo UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数。我们

gghu1986的专栏 2717

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WKWebView 和 UIWebView 的适配问题

webView 适配问题

lin_transform的博客 1207

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IOS小技巧:属性的lazyload懒加载的使用

懒加载(lazyload)是指对象在使用的时候再进行实例化创建的方法,懒加载的使用可以降低内存占用率,早ios开发中常见的小技巧。 1.懒加载的原理 懒加载实在getter方法的基础上使用的,当我们用.访问内部属性的时候,实际上是调用的对象的getter方法,因此,在实现文件中只要重写调用属性对象的getter方法,在getter方法中完成对象的实例化,并做基础设置,这样在第一次点访问的时候就

qishiai819的博客 2225

UIWebView

简单介绍 什么是UIWebView UIWebView是iOS内置的浏览器控件 系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但能加载远程的网页资源,还能加载绝大部分的常见文件 html\htm pdf,doc,ppt,txt mp4 UIWebView常用的加载资源的方法 -(void)loadRequest:(NSURLRequest *)request; 常用属性和方法 重新加载(刷新) -(void)reload; 停止加载 - (void

weixin_44729579的博客 1441

对于UIWebView与WKWebview的理解

iOS有UIWebview和WKWebview两种webview。从iOS13开始苹果将UIWebview列为过期API。2020年4月起App Store将不再接受使用UIWebView的新App上架、2020年12月起将不再接受使用UIWebView的App更新。 在进行5+app开发中,从HBuilderX 2.2.5起,iOS上默认均已经是WKWebview,除非开发者手动在代码中指定要用UIWebview,否则实际渲染的页面都是在WKWebview里渲染的。不过,虽然实际页面是WKWebview

cug-jdc的博客 4257

UIWebView加入JS执行

UIWebView是iOSsdk中一个最常用的控件。是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。这篇文章我将使用这个控件,做一个简易的浏览器。如下图: 我们创建一个Window-basedApplication程序命名为:UIWebViewDemo UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数。我

guyueyan213的专栏 7345

UIWebView与JS的交互

UIWebView与JS的交互,说白了就是Objective-C和JavaScript的相互调用。Objective-C调用JavaScript代码的方法,是通过UIWebView的 - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;的方法来实现的。该方法向UIWebView传递一段需要执行的JavaScr

Panwave的专栏 1454

swift 之UIWebView

swift 关于web的知识点

NoPolun_iOS的博客 1688

UIWebView 替换 WKWebView

已经快要到苹果规定更新包不允许使用UIWebView的最后期限了,今天刚把项目中的UIWebView替换完成,记录一下具体遇到的问题 目录一:基本使用二:替换1、scalesPageToFit 属性替换:2、UIWebView 和WKWebView对应代理方法2.1、shouldStartLoadWithRequest2.2、开始加载2.3、加载成功2.4、加载失败3、Native和JS互相调用:3.1、Native调用js3.2、js调用Native4、左滑返回上一步 一:基本使用 首先说下基本用法: U

小歲月丶太着急 1681
上一篇: Notification
下一篇: Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
Ruansf
博客等级 码龄14年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值