想必都看过WWDC2021的Session了,Session原版视频依然是最有效的get新特性的渠道,iOS15多的特性就不说了,我就整理了我在适配iOS15路上的一些更改和调整。...iOS15上是无效的 旧代码 navigationBar.setBackgroundImage(UIColor.clear.image, for: .default) // 导航栏背景,主题色是绿色 navigationBar.barTintColor...: UIFont.systemFont(ofSize: 18), NSAttributedString.Key.foregroundColor: UIColor.white ] run起来后发现...UINavigationBarAppearance来实现,UINavigationBarAppearance是iOS13更新的API,应该有人已经在用,我们的应用兼容iOS10以上,对于导航栏的设置还没有使用...UINavigationBarAppearance,如今在iOS15上失效,所以对于呈现的问题,做如下适配: 新代码 ...... if #available(iOS 15, *) { let
引言 【持续更新中】 原文: https://kunnan.blog.csdn.net/article/details/114014827 I、封装富文本API,采用block实现链式编程 iOS开发效率工具...:完整SDK源码【封装富文本API,采用block实现链式编程】(block 的妙用:结合block和方法的优点实现iOS的链式编程) 1、文章:https://blog.csdn.net/z929118967...Webview) III、HTML字符串与富文本互转 https://kunnan.blog.csdn.net/article/details/114015528 在这里插入图片描述 html->NSAttributedString...专注《iOS应用逆向与安全》(包括iOS基础)"; NSAttributedString *attStr = [[...UITextField的_placeholderLabel 私有API 问题:iOS13无法直接访问_placeholderLabel.textColor 解决方案:使用 NSMutableAttributedString
方法可以运行在任意线程,因此可以有效的应用在那些异步算高或者要求尺寸进行提前计算的场景中。...从iOS官方的实现中可以看出文本算高会考虑简单文本字符串、属性字符串、字体大小、最大显示行数numberOfLines、段落信息、 段落的对齐方式、断字方式、段落的首行缩进、阴影偏移等等因素。...中的sizeThatFits中的参数的意义。.../// @param text 要计算的简单文本NSString或者属性字符串NSAttributedString对象 /// @param numberOfLines 指定最大显示的行数,如果为0则表示不限制最大行数...(用例在iOS9到iOS13上运行通过): CFTimeInterval simpleTextUILabelInterval = 0; CFTimeInterval simpleTextNOUILabelInterval
关于行间距 lineSpacing 先贴出一张 iOS 中 UILabel 的默认排版样式: ? 大家也都能看出来,默认的排版样式中,文本的行间距很小,显得文本十分挤。...主要的原因在前言也提到了,Android 设备上的文字上下默认留白(上一节图中蓝色和红色重叠的部分)和 iOS 设备上的是不一致的: ?...虽然文字的渲染上会有细微的差别,但是布局上的差别将被完全的抹除。...这个属性十分有用,在实现上标下标之类的需求时也经常用到它。...好在我们通常是行高和行间距针对不同的需求分别独立使用的,它们在分开使用时不会触发这个问题。所以在 VirtualView-iOS 库中,我暂且将高度计算的逻辑保持和系统一致了。
【疑难解答】->疑难解答【高级选项】->高级选项【启动设置】->启动设置【重启】 第二步、禁用驱动程序强制签名 平板:等待,到了高级启动设置界面,按下F7,这样本次启动就是“禁用驱动程序强制签名”启动的。...台式:需要先进入bios(进入bios的方式跟主板有关系,每个型号的主板进入bios的键都不一样,一般【Delete】、【F8】、【F2】、【F12】这几个键是最常见的),按住bios启动键到bios界面...,松开bios启动键,按界面指定的方法(一般是【Esc】键)退出Bios设置界面就到了高级启动设置界面,按下F7,这样本次启动就是“禁用驱动程序强制签名”启动的。
这个概念看似乎简单,事实并非如此。...,我们得到CTFrameRef,最终渲染到屏幕上。...从这个不同的现象开始,我们来理解iOS的坐标系。 坐标系概念 在iOS中绘制图形必须在一个二维的坐标系中进行,但在iOS系统中存在多个坐标系,常需要处理一些坐标系的转换。...用我们在Windows常用的画图来参考,当我们使用画笔在白板中写字时,图形上下文就是画笔的属性设置、白板大小、画笔位置等等。...iOS中,每个图形上下文都会有三种坐标: 1、绘制坐标系(也叫用户坐标系),我们平时绘制所用的坐标系; 2、视图(view)坐标系,固定左上角为原点(0,0)的view坐标系; 3、物理坐标系,物理屏幕中的坐标系
在使用中通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式。 可设置的控件有UILabel、UITextField和UITextView。...注:NSStrikethroughStyleAttributeName设置删除线 取值为NSNumber对象,枚举NSUnderlineStyle中的值。...NSBaselineOffsetAttributeName 设置基线偏移值 取值为NSNumber (float),正值上偏,负值下偏 */ NSString *str11 = @"添加基线偏移值...[self.view addSubview:label]; OC使用之超链接 之所以把 NSLinkAttributeName 属性单独列出来,是因为在 UILabel 和 UITextField 中是无法使用该属性的...更准确点说是在UILabel 和 UITextField 中无法实现点击链接启动浏览器打开一个URL地址,因为在此过程中用到了一个代理函数。只能用在 UITextView 中。
AttributedString——不仅仅让文字更漂亮 在WWDC 2021上,苹果为开发者带来了有一个期待已久的功能——AttributedString,这意味着Swift开发人员不再需要使用基于Objective-C...AttributedString vs NSAttributedString AttributedString基本上可以看作是NSAttributedString的Swift实现,两者在功能和内在逻辑上差别不大...AttributedString中基本不采用NSAttributedString如下的属性访问方式,极大的减少出错几率 // 可能出现类型不匹配let attributes: [NSAttributedString.Key...NSAttributedString(attributedString, including: \.uiKit) •为了提高兼容性,部分功能相同的属性,可以在foundation中设置。...•扩展AttributeDynamicLookup(支持点语法)在AttributeDynamicLookup中创建符合自定义Scope的下标方法。为点语法、KeyPath提供动态支持。
在iOS13中发现presentViewController和之前弹出的样式不一样 显示如下图 ?...屏幕快照 2019-10-21 上午11.01.50.png 原因: 在iOS13中modalPresentationStyle的默认改为UIModalPresentationAutomatic...解决方案:每个UIView都做修改是不现实的,统一的实现方式为: 在plist文件中增加配置项UIUserInterfaceStyle,值为UIUserInterfaceStyleLight。...withString: @""]; token = [token stringByReplacingOccurrencesOfString: @" " withString: @""]; 这段代码运行在 iOS 13 上已经无法获取到准确的...8.通过kvc获取获取searchBar中的TextField方法更改,会引起崩溃 原因: ios13之后把SearchBar中的textField直接暴露给开发者使用,无需在通过kvc获取。
= NSAttributedString(attachment: attchimage) //注意:每替换一次,原有的位置发生改变,下一轮替换的起点需要重新计算!...:paragraphStyle, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)], range: NSRange(location...1、列表页cell中的imageView的大小是固定平均分配的,而每张图片的大小和比例都是不一样的,为了保证图片不变形,按比例只展示图片的中心部分,怎么做哪?...捏合放大缩小动画是由继承于UIScrollView的子类SLPictureZoomView完成;触摸点双击放大是根据触摸点在图片的位置和屏幕上的位置得到放大后的触摸点相对位置来实现的;拖拽过渡转场是根据手指在屏幕上的移动距离来调整...三、界面流畅度优化 网上关于界面流畅度优化的好文章还是挺多的,我在这里只记录下本文示例中用到的部分优化策略,基本上FPS在60左右, 详情可以看代码: 1、cell高度异步计算和缓存 2、富文本异步正则匹配和结果缓存
视频中,黑色机器是iOS14.0,白色是iOS13.7,都是iphone 7plus。 虽然从视频中来看,iOS 14的fps还要高一些,但实际上14明显卡顿。...原因是:Egret检测的fps是web层面通过requestAnimationFrame得到的,实际上和画面渲染没有严格对等关系。 ...题外话:自研引擎性能略比egret好10%左右,但上边测试中能支持15000个图片,只是因为自研引擎没有做像素密度加倍尺寸渲染。 由此可见,iOS14 webgl性能确实比iOS13有明显下降。...3、去除shader的alpha计算 也没有明显变化 4、去除blendMode处理 虽然有明显的性能提升,但在iOS14上的性能提升并不比iOS13上的提升更大,blendMode并不是iOS14变慢的主要因素...具体改动: WebGLRenderContext的$drawWebGL方法中,判断是否Mesh绘制,在非Mesh绘制情况下,切分vao中的indices array和vertices array,取出本次
,相当于iOS 12上的 application(_:didFinishLaunchingWithOptions:) 函数。...三、SceneDelegate适配 从iOS13开始AppDelegate不再有window属性,window属性被定义在SceneDelegate中。...这是因为iOS13中AppDelegate的职责发现了改变: iOS13之前,AppDelegate的职责全权处理App生命周期和UI生命周期; iOS13之后,AppDelegate的职责是: 1、...storyboard项删除 注意2:AppDelegate中的有关事件循环的方法,在iOS 13后是不会走的,iOS13以下的才会收到事件回调的。...该控制器用于将基于SwiftUI的视图显示在屏幕上。 最后,UIScene的实例化对象scene实际上是UIWindowScene类型的对象。 这就是as?对可选类型转换的原因。
现在的做法 苹果在iOS7中推出了一个新的类NSTextAttachment,它是做图文混排的利器,本文就是用这个类,只用50行代码实现文字与表情混排,当然也可以实现段落中的图文混排,与CoreText...先上效果图,聊天界面中的图文混排: 要实现这样的效果,code4app上似乎有很多种做法,还有一些奇葩的一个字符一个label,但是今天要讲述的做法,是目前为止我看到的最简单的做法了,只用一个UILabel...首先,需要组装一个表情和文字对应的plist文件,plist中的键值对如下: ? 图-2 本文用一个工具类来实现一个转换的方法,你也可以给NSString添加一个类别来实现。...//获取原字符串中对应的值 NSString*subStr = [text substringWithRange:range]; for(inti =0; i < face.count; i ++...NSAttributedString*imageStr = [NSAttributedString attributedStringWithAttachment:textAttachment];
短视频系统中评论功能的分量在短视频功能里可谓是举足轻重,下面简单介绍下,短视频系统中的评论功能的实现方式: 评论分为对视频的评论和对评论的回复两部分: 对于评论列表大家再熟悉不过了,就是一个tableview...罢了,相信刚入门的技术也可以实现。...技术的关键在于对评论的回复,我们使用了tableview的嵌套,即:在评论的cell中创建回复的tablview,使用代理功能来实现对数据和UI界面的精准控制,下面是实现的具体方式: _contentL.attributedText...= [[NSTextAttachment alloc] init]; UIImage *image2 = [UIImage imageNamed:@"relpay_三角上....关于更多短视频系统功能的介绍可以关注我们的账号,我们会持续更新关于短视频功能介绍。
iOS的每次大版本更新都会是iOSer的苦难之旅,这次的iPadOS估计肯定也不例外当然了这次估计是针对iPadOS的苦难而已吧。...在iOS13以下的iOS中iPhone和iPad用的是同一套OS而到了iOS13之后iPad单独摘出来另起炉灶称为iPadOS好了我们先上个坑---升级iPadOS之后App黑屏问题 问题描述 iOS13...以下的iPad均能正常启动而到了iPadOS上启动启动页一闪而过之后是黑屏 问题分析 对这App发了好一会呆之后无从下手,怎么办吧。...上图是UI图层的继承结构,我们看到最外部的为WindowScene然后内部是两个同级的window层,那么问题来了这个WindowScene是什么呢?没见过,很陌生,直觉告诉我们问题可能出在这里。...我们将视角切换一下来带EffectWindow,也就是点击Xcode左侧的代码图层结构,你会看到可视化的区域渲染出了一个黑色的Scene,这个应该就算是我们黑屏是展示的部分啦 ?
关于富文本能做什么我就不多说了,我们一般遇到的图文混排等,这个还是很好做到的。...UIColor 对象,默认值为黑色 NSUnderlineStyleAttributeName 设置下划线,取值为 NSNumber 对象(整数),枚举常量 NSUnderlineStyle中的值...取值为 NSString 对象,目前只有图版印刷效果可用: NSBaselineOffsetAttributeName 设置基线偏移值,取值为 NSNumber (float),正值上偏...*)attrString; - (void)insertAttributedString:(NSAttributedString *)attrString atIndex:(NSUInteger)loc...)range; - (void)setAttributedString:(NSAttributedString *)attrString; - (void)beginEditing; - (void)
要来就来全套的,苹果还把手机中的照片应用、联系人、短信编辑页面等统统变黑。 用户在使用暗黑模式时,点击控制中心的快捷按钮,就可切换黑暗模式。...电台功能也加入Siri大家庭,10万个电台,估计有好多是你喜欢的。 内置Siri智能音箱HomePod,也变得更智能,你在公司上播放的手机内容没播完,回家后HomePod会续播。...6、引入HomeKit安防视频功能 iOS13中,苹果增加HomeKit安防视频功能,该功能可提供10天的iCloud存储,而此举并不会占用你现有的存储空间。...据了解,开发者只要在Xcode中勾选Mac,相关功能进行包括光标控制和窗口控制在内的自动适配。...在游戏数量上,tvOS正式版上线后将推出近百款,游戏控们估计要笑醒吧。 记者手记 本次WWDC的特约记者是浙江大学的俞佳兴,他首次作为WWDC奖学金得主来参加大会。
前言 19年做了一个小说阅读器,特此介绍阅读器设计,还有实现过程中的一些坑。...是常用的富文本字符串类; CTLine是CTFrame中的一行文本、CTRun是CTLine中有相同属性的连续字形; ?...SSLayoutPageData,每个对象中都有一个CTFrameRef,代表一页的排版结果;最终SSPageView将其CTFrameRef渲染到到屏幕上。...2、图文混排 图文混排的过程中,CoreText会回调我们某个字符的宽高,但是如果不注意代码会出现异常: ?...之后,就不应该修改; 延伸出来的翻页逻辑优化 UIPageVC在使用过程中(动画过程中),不可调用这个方法,否则滑动的手势会取消,出现闪动的效果。
翻译一下就是: 运行时检查失败#2-变量“arr”周围的堆栈已损坏。 造成这个错误的原因是: 内存越界 那么遇到这种情况我们该如何解决呢?...看似没有什么问题,但如果你原封不动的将该段代码放在编译器运行时却会导致编译器报错,如图: 然而问题就出在第7行代码: for (i = 0; i <= 5; i++) 注意,在程序中,arr数组只开辟了...5个整型数据元素的空间,即arr数组的可访问元素下标范围在0-4之间,但在代码的第七行,for循环的最后一次循环明显越界访问了下标为5的元素(即第6个元素)....如果您遇到的报错场景比这段函数复杂许多,不要担心,下面会提供给你一些解决思路: 造成这个错误的原因是: 内存越界 解决方向 通常是数组下标访问越界,或是指针访问数组时造成访问越界 注意检查的点...结语 希望上面提供的线索可以帮助到大家在代码中查找出现了什么问题.学海漫浩浩,我亦苦作舟!欢迎大佬评论或私信我,一起学习,一起进步.Bug Free!
因为BootROM漏洞无法修复,所以该工具也能支持iOS12、iOS13以及未来所有版本设备的越狱。在官网可以下载越狱工具,喜欢高版本系统的读者可以考虑。...1.2 必备小工具 将手机越狱后,需要安装一些必备的工具来增强可操控性。相信读者学会如何在Cydia中搜索安装软件之后,下面的操作应该已经非常熟练。...二、SSH配置 Secure Shell(SSH)是建立在应用层基础上的安全协议,用于计算机之间的加密登录,可以在不安全的网络中为网络服务器提供安全的传输环境。...SSH最初是UNIX系统上的程序,后来迅速扩展到其他操作平台。 2.1 安装OpenSSH OpenSSH的主要用途是方便在Windows或者MacOS上远程输入命令操作iOS设备。...scp的使用方法很简单,具体如下: #把mac上的“chinapyg.txt”文件复制到iOS设备的/tmp/目录 scp -p2222 .
领取专属 10元无门槛券
手把手带您无忧上云