iOS支持的应用内显示网页的方法有多种,有的还会自动提供下方的工具栏,这里说明最简单的一种:使用WebView来快速实现应用内显示网页内容。...UIWebView是iOS自带的一种浏览网页的UI控件,我们在.m文件中创建一个实例: @interface ViewController () @property (nonatomic, strong...) UIWebView *webView; @end 然后在viewDidLoad方法中初始化这个WebView实例,并设置其要访问的网站的URL,然后将其添加到视图中去: - (void)viewDidLoad...]; [self.webView loadRequest:request]; } 这样其实就完成了,非常简单快捷。...但是其实在iOS 9下还有一个问题,那就是iOS默认要求所有访问必须基于https协议,所以现在直接运行会访问失败,解决方法是在Info.plist文件中添加支持http协议的声明,方法如下: 我们右键
我固定了图片的显示大小为 102 * 152 1、对MaskImgae进行拉伸 // 设置拉伸范围 let stretchInsets = UIEdgeInsetsMake(30, 28, 23, 28...上面的拉伸效果图是临时把拉伸好的图片赋值给了chatImgView,只是为了给大家看到效果而已,�各位看官如果有赋值请记得改回来~~ 好,下面进行裁剪 // 新建一个图层 let layer = CALayer() // 设置图层显示的内容为拉伸过的...翻译:如果图层的内容是重新设置了尺寸的,那定义的这个矩形(contentsCenter)是为了告诉图层,图层的内容是如何被缩放的 那明了,我们的图片是被拉伸后再绘制到layer上的,为了正确显示我们的图片...30.0 23.0 28.0 28.0 �好,现在结合 下面的图 与 CGRectCenterRectForResizableImage 方法中的代码就很明确比例是怎么取到的了 拉伸区域 附上相关项目:Swift
前言 在iOS8中,苹果推出了WKWebView。WKWebView有一个突出特点,就是内存占用少。 但作为一个全新的WebView,API相比于之前的UIWebView肯定会有所不同。...WKWebView基本使用 self.webview = [[WKWebView alloc]init]; [self.view addSubview:self.webview];...[self.webview.configuration allowsPictureInPictureMediaPlayback]; // 网页中的多媒体是否需要手势才能开始播放(iOS 10)...:(WKNavigation *)navigation{ NSLog(@"页面开始加载"); } // 当内容开始返回时调用 - (void)webView:(WKWebView *)webView...#pragma mark - WKUIDelegate // 创建一个新的WebView - (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration
做iOS的应用也有一段时间了,在之前的demo中一直没有机会用到WebView,今天就查缺补漏一下,使用一下WebView。...最早接触WebView是在Android中接触的,iOS中的WebView的用法也是挺简单的。本篇博客没有什么高深的技术,只是对webView的应用。...从字面意思可以看出WebView就是用来加载网页的视图,和手机上的浏览器类似。 ...1.之前用storyboard拖控件时只是看着WebView在哪里静静的躺着(如下图所示),一直没有用过,如果想使用的话也很简单,就是把web view拖入到storyboard中即可:今天就写篇博客来应用一下...2,把WebView拖到storyboard中以后,和相关的代码进行关联,如下: ?
概述 WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,...loadRequest:request]; // 5.最后将webView添加到界面 [self.view addSubview:webView]; self.webView...loadRequest:request]; // 5.最后将webView添加到界面 [self.view addSubview:webView]; self.webView...{ //显示网络请求加载 [UIApplication sharedApplication].networkActivityIndicatorVisible = true; }...otherButtonTitles:@"确定", nil]; [alert show]; } WKWebView WKWebView是iOS8
MOAttributedTextView 仅一个类Class实现:显示前n行文案,点击展开,再点击收起效果。...if lessLine < allLine { closeHeight = CGFloat(lessLine) * lineHeight } 获得前n行的文案:(难点在此,差点放弃,最后在 ios...获取UILabel每行显示的文字 这篇文章里找到解决方案) let attributedString = NSMutableAttributedString(string: moAllText, attributes...linkRange) attributedText = attributedString How to use and demo see here MOAttributedTextView 参考: iOS...富文本添加点击事件 Ranges in Swift explained with code examples ios获取UILabel每行显示的文字
iOS runtime swift中的Swizzling方法交换 背景知识 Swift 是一种强类型语言。即默认类型是安全的静态类型。...纯Swift类的函数调用已经不再是OC的运行时发送消息,而是类似于C++的vtable,在编译时就确定了调用哪个函数,所以没法通过runtime获取方法,属性。...Swift中的动态性可以通过OC运行时来获得,动态性最常用的就是方法替换(Method Swizzling)。...swift动态修饰符 @objc 将Swift函数暴露给OC运行时,但是它仍然不能保证完全动态,编译器会尝试去对它做静态优化 dynamic 动态功能修饰符,它能保证函数,属性可以获得动态性 Swizzling...} } @objc func test2() { debugPrint("test 2") } } 在swift3.0
前提 目前TRTC官网上提供的一些场景化demo(比如TUIMeeting )是用的swift写的,下面以OC项目中集成TUIMeeting这个组件为例简单介绍下OC 调用swift 正文 1、集成TUIMeeting...组件直接参考TRTC官网文档https://cloud.tencent.com/document/product/647/45681 2、添加swift 文件,只要是混编无论是在oc项目中添加swift...文件的oc类中导入“项目名-Swift.h”文件,command+鼠标点击看是否能进到文件中 Finished running TRTCDemo on khiPhone.png 6、进不去“项目名-Swift.h...8、删除本地自己创建的“项目名-Swift.h”文件,再重复第5步进来就能看的你需要的“项目名-Swift.h”文件了 h TRTCDemo-Swift.h.png h TRTCDemo-Swift.h.png...然后就可以在OC类中导入“项目名-Swift.h”文件调swift文件了 最后 因为是以TUIMeeting为例,直接用pod集成的TUIMeeting组件中有些类如TRTCMeetingMainViewController
首先必须吐槽一下后台返回的Url网页HTML代码太坑: 情景一、WebView加载url 图片直接就是标签出来的,还是一张巨大的图片,直接导致webview加载只有截取了屏幕大小的宽度,看不到整张图片,...于是有了这篇博客记录一下,在Webview的setWebViewClient()方法中WebViewClient中在加载完网页后执行一个JavaScript方法,这个JavaScript方法将所有网页中图片的宽度设置为屏幕显示宽度...直接加载HTML代码 这里还记载一种以前遇到的情况,就是接口返回一段HTML方法,需要我们把这段HTML方法放在WebView中显示出来,也会有图片需要适配屏幕宽度的需求,这里的解决方法就简单多了,毕竟我们可以拿到...;//后台接口返回的需要在WebView中显示的HTML代码 content = content.replace("<img", "<img style=\"display: ;max-width...:100%;\""); webView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);
) ViewController.swift > ViewController.sil (滑动显示更多) 另外,如果想查看更多的 swiftc 的命令,可以在终端输入 swiftc -h。...类的方法汇编调用 我们新建一个 Swift 项目,需要注意的是,一定要用真机跑,因为我们的 iOS 程序都是要装到手机上的,而手机的架构目前基本都是 arm64 的架构。...) ViewController.swift > ViewController.sil (滑动显示更多) 生成 ViewController.sil 文件后,我们打开文件,看到文件的最底部。...__deallocating_deinit } (滑动显示更多) sil_vtable 是啥,根据感觉翻译的话,vtable 应该是虚表或者叫虚函数表,在 C++ 类的函数是放在虚函数表中的,那么 Swift...它们怎么相加呢,iOS 属于小端模式,所以 90 FB FF FF 要从右边往左读。
import UIKit /*: 可选类型 * 可选类型表示变量可以有值, 也可以没有值 * C 和 Objective-C 中并没有可选类型这个概念 * Swift中只有可选类型才可以赋值为nil...号 可选类型的取值是一个枚举 * None 没有值 * Some 有值 * 由于可选类型在Swift中随处可见, 所以系统做了一个语法糖, 在类型后面加上?...* Swift 的nil和 Objective-C 中的nil并不一样。...在 Swift 中,nil不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为nil,不只是对象类型。...是所有刚刚接触Swift的OC程序员最最蛋疼的问题, 前期开发要注意多看文档和利用编译器提示解决(option + click) 注意 * 在Swift开发中, 尽量不要使用强制解包, 不安全 */
(在 iOS 中使用的是 WKWebView)的加载速度,内存使用情况。...测试手机:iPhoneX 系统:iOS12.0 加载速度对比 测试网页打开的速度,只需要获取 WebView 在开始加载网页和网页加载完成时的时间戳,时间戳的差即为打开网页的时间。...WKWebView extension WKWebViewVC: WKNavigationDelegate { public func webView(_ webView: WKWebView,...,他使用的就是原生的 webView。...是比UIWebView更好的选择,推荐使用; flutter_webView_plugin:在iOS中使用的就是原生的WKWebView,所以总体和 native WKWebView 表现差不多。
现在人们已经习惯于使用手机来查看文档了,除了使用各个应用来打开office文档,iOS自身的WebView也支持打开查看大部分类型的office文档,当然他本身是用来打开HTML文件的,但也不妨碍对这个强大的功能加以利用嘛...并显示它: //创建WebView并设置位置 UIWebView webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 60, 320, 520...)]; 通过路径读取文档数据 NSData *tempData = [NSData dataWithContentsOfFile:path]; 将数据传给WebView显示,并且告知文档类型...添加到视图中 [self.view addSubview:webView]; 这样就可以通过WebView将各种格式的文档显示出来了。...这是一个快速开发显示文档的例子,不用根据每种文档格式来做对应的设置,调用自带的类,都很方便。但是要作为正式使用仍然缺了很多,所以要走的路还很长。
问题: 设置textView高度的时候,使用正常的文字高度计算方法,发现高度计算正确,但是文字只显示一行,显示不全。
前言 Swift 打印日志我们我们都用print 但是我们怎样在打印日志的同时输出 所在的文件和方法呢 在 Swift 中,编译器为我们准备了几个很有用的编译符号,用来处理类似这样的需求,它们分别是:
1、常量与变量 Swift中定义常量和变量非常简单,无论你想定义的是整型、浮点型、数组还是字符串,都只需使用两个关键字来进行区分。...age是个变量,所以修改age不会报错 name = "小明" //程序会报错:cannot assign to value: 'name' is a 'let' constant,提示你不能修改常量 Swift...的开发原则是尽量使用常量,因为常量的运行效率更高,这也是为什么编译器(Xcode)检测到你的变量没有改变的时候会提示你把变量改成常量 2、类型推测 Swift其实是一门不折不扣的强类型语言,但为什么可以通过两个关键字就可以定义常量和变量...因为这个依托于Swift强大的类型推测功能。...print方法 print("a","b","c", separator: "*", terminator: "end") //输出结果 a*b*cend //带分隔符和终止符的print方法是不换行的哦 Swift
前言 微信支付的iOS的Demo真是烂,所有的参数都是后台生成传过来的,完全没参考价值,并且有的注意点文档上也没说,现在我就说一下微信支付开发中需要注意的地方 项目配置 把实例项目中的一下文件拖到项目中
2、基本数据类型 这里介绍一下Swift的基本数据类型:整数、浮点数、布尔型、可选型和元组,其它较复杂的后面再介绍。Swift中的数据类型的首字母都是大写的。...我们可以通过索引直接获取元组中各部分的值,比如: let name = message.0 let age = message.1 let grage = message.2 在playground中显示如图...介绍一个转型的例子,在Swift中,String类型可以和Int类型的实例相互转换,你可以把诸如"12"这样的字符串转换成Int,但是不能转换“小明”这样的字符串,Swift风格的转型使用构造器。...图2.6 在输出语句中我们得到的age的值显示为Optional(12),Optional代表可选,age的当前值为一个整数类型的可选型。...guard-let-else是Swift2.2新引入的格式,示例如下: var age:Int?
iOS_Swift高阶函数 图片 1....例如: let numbers = [1, 4, 2, 3] let res = numbers.sort { $0 < $1 } 看着不像是函数作为参数,是因为 Swift 尾随闭包 Trailing...Swift 允许当函数的最后一个参数是闭包时,可以以紧跟 { } 的形式,将最后一个闭包的内容附加在函数后面。...}.map { $0 * $0 }.reduce(0) { $0 + $1 } Reference: Apple Documentation for swift...Swift 烧脑体操(三) - 高阶函数 深入浅出Swift高阶函数-Map、Filter、Reduce swift小知识点之高阶函数之map, filter, reduce
好像是macOS10.10之后,以及iOS8之后,新出现的WKWebview组件就迅速的替代了Webview及UIWebView。...一是WKWebview的文档,二是iOS类的文档。想要的macOS下面Webview的资料缈如黄鹤。 经过部分只言片语的资料指导和大量的实验,终于完成了工作。所以决定来烧烧冷灶,写出来记录一下。...msg return from js"); } 其中定义了一个函数callFromSwift,当被调用的时候,在下面预定义的div中显示传入的字符串...从JS到swift的调用要复杂的多了。 首先在初始化的时候,要加上一句: webView!....{ NSLog("msg of alert: %@",message) } 如果不满足于只是得到警告消息,要自己在这个函数中使用cocoa的警告窗来显示相关的信息。
领取专属 10元无门槛券
手把手带您无忧上云