之前已经把微信的视图结构简单的拖了一下(iOS开发之微信山寨版),今天就开始给微信加上具体的实现功能,那么就先从微信的聊天界面开始吧。...今天博客中的所有代码都是脱离storyboard的,这些代码在别的工程中也是可以使用的。好,废话少说,切入今天的正题。 微信大家基本上都用过,今天要做的就是微信的聊天工具条。...在封装聊天工具条的的时候表情键盘是之前封装好的(请参考:“iOS开发之自定义表情键盘(组件封装与自动布局)”),所以拿过来就可以用的啦。...Controller中 13 typedef void (^MyTextBlock) (NSString *myText); 14 15 //录音时的音量 16 typedef void (^AudioVolumeBlock...1.为了更好的封装我们的组件,在.h中预留接口,在ToolView.m的延展中添加我们要使用的组件(私有属性),延展代码如下: 1 @interface ToolView() 2 //最左边发送语音的按钮
iOS文本布局探讨之三——使用TextKit框架进行富文本布局 一、引言 关于图文混排,其实以前的博客已经讨论很多,在实际开发中,经常使用第三方的框架来完成排版的需求,其中RCLabel...iOS开发封装一个可以响应超链接的label——基于RCLabel的交互扩展:http://my.oschina.net/u/2340880/blog/550194。...CoreText是一个比较底层且十分强大的文本渲染框架,但是其使用起来并不是十分方便。在较低版本的iOS系统中,要进行富文本排版十分困难。...在iOS6中,系统为UILabel,UITextView等这类文本渲染控件引入了NSAttributedString属性,有了NSAttributedString这个类,创建灵活多彩的文本控件变得十分轻松...) NSFileWrapper *fileWrapper; 结合UITextView可以为NSAttributedString属性字符串添加超链接,在代码回调中监听此超链接的回调可以获取NSTextAttachment
在使用中通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式。 可设置的控件有UILabel、UITextField和UITextView。...NSVerticalGlyphFormAttributeName 设置文字排版方向 取值为NSNumber对象(整数),0表示横排文本,1表示竖排文本 在iOS中只支持0 */ NSString...之所以把 NSLinkAttributeName 属性单独列出来,是因为在 UILabel 和 UITextField 中是无法使用该属性的。...更准确点说是在UILabel 和 UITextField 中无法实现点击链接启动浏览器打开一个URL地址,因为在此过程中用到了一个代理函数。只能用在 UITextView 中。...在模拟器环境下一直无法点击,在真机上是正常的,不知道是不是模拟器不支持。 OC代码 原文地址
iOS中UITextView方法解读 常用属性解读: @property(nonatomic,assign) id delegate; 设置代理属性 @property...,邮件等变为链接,长按会调用响应响应的程序(textView必须为不可编辑状态),属性的枚举如下: typedef NS_OPTIONS(NSUInteger, UIDataDetectorTypes)...) BOOL clearsOnInsertion; 设置是否显示删除按钮 UITextViewDelegate中的方法 - (BOOL)textViewShouldBeginEditing:(UITextView...:(UITextView *)textView; 开始编辑时触发的方法 - (void)textViewDidEndEditing:(UITextView *)textView; 结束编辑时触发的方法...*)URL inRange:(NSRange)characterRange; 当文本中的URL进行链接时触发的方法 专注技术,热爱生活,交流技术,也做朋友。
Autolayout自iOS 6开始引入, 但是由于Xcode 4的不给力,当时并没有得到大规模推广。...3,当ScrollView过长无法编辑怎么办?将控制器改为Freedom 修改ContentView的高度约束 这样ScrollView 就可以滚动了。 ?...此图中距顶的约束是10, 距底的约束8, 距左边约束是87,距右边的约束是13, 那么systemLayoutSizeFittingSize:返回的CGSize为height等于19, size等于100...Manual Layout with UITextView 按照前面介绍的,我们需要创建C4.xib, C4类, T4ViewController类,Main.storyboard中拖入UITableViewController...其中: OAStackView,基于OC的StackView库,支持iOS7+以上的系统,同时支持代码和IB视图。
但是,如果绘制完整个文本需要更大的空间,则返回的矩形大小可能比 size更大。一般,绘制时会采用constraint 提供的宽度,但高度则会根据需要而定。...(由于一个 bug,在 iOS6中,宽度会被忽略) 兼容性 iOS 6.0 以后支持。 声明于 NSStringDrawing. ...postContentTextView.typingAttributes context: nil]; labelSize = labelFrame.size; labelSize.height = ceilf(labelSize.height); 2 参考链接...的高度 http://blog.sina.com.cn/s/blog_6ae8b50d0100zl2u.html Display html text in uitextview http://stackoverflow.com.../questions/2454067/display-html-text-in-uitextview 一文让你彻底了解iOS字体相关知识 http://ios.jobbole.com/83939/?
iOS文本布局探讨之一——文本布局框架TextKit浅析 一、引言 在iOS开发中,处理文本的视图控件主要有4中,UILabel,UITextField,UITextView和UIWebView...TextKit是一个偏上层的开发框架,在iOS7以上可用,使用它开发者可以方便灵活处理复杂的文本布局,满足开发中对文本布局的各种复杂需求。...TextKit实际上是基于CoreText的一个上层框架,其是面向对象的,如果TextKit中提供的API无法满足需求,可以使用CoreText中的API进行更底层的开发。 ...官方文档中的一张图片很确切,经常会被用来描述TextKit框架在iOS系统文本渲染中所处的位置。 ?...在TextKit框架中,提供了几个类分别对应处理上述的必要条件: 1.NSTextStorage对应要渲染展示的内容。 2.UITextView对应要渲染的视图。
前言 iOS开发中,UITextField和UITextView是最常用的文本接受类和文本展示类的控件。UITextField和UITextView都输入文本,也都可以监听文本的改变。...从这个角度,UITextView在功能上是优于UITextField的。...可是,UITextView就没那么幸运了,apple没有给UITextView提供一个类似于placeholder这样的属性来供开发者使用。...而开发中,我们经常会遇到既要占位文字,又要可以多行展示并且可以滚动的控件,单纯的UITextField或者UITextView都不能满足这种产品上的需求。...; } - (void)setText:(NSString *)text { [super setText:text]; if (text.length) { // 因为是在文本改变的代理方法中判断是否显示
适配深色模式 苹果在iOS13中为iPhone引入了深色模式。那作为成为iOS程序员的我们也有事情做了,就是适配深色模式。...首先,所有 UIKit 本身所提供的 UI 控件(例如 UIView,UILabel,UITextView等等) ,只要没有针对颜色等内容特殊设置过,都会自动适配深色模式,这部分是我们开发者不需要去关心的...颜色 在iOS13以后,UIKit给我们提供了很多的动态颜色,以system开头的都是动态颜色,当我们给 UI 控件设置了动态颜色以后。 UI 控件就会自动的根据当前是否是黑暗模式展现出来对应的颜色。...比如这样写: self.view.backgroundColor = [UIColor systemRedColor]; (滑动显示更多) 当然,系统提供的这些动态颜色肯定是无法满足我们的实际开发需求,...在 iOS 13 中, UIKit 为 UIColor 所提供的 新 API 来创建我们自己的动态颜色。
登录界面弹用户协议及隐私政策时,如果用户点击不同意,不能停留在弹框界面,需要隐藏弹框,否则无法通过OPPO安卓应用市场。...《用户协议及隐私政策》 弹框的实现步骤: 1、自定义TextView,采用富文本属性进行内容设置attributedText(包括下划线NSUnderlineStyleSingle、超链接NSLinkAttributeName...、颜色NSForegroundColorAttributeName 等信息) 2、实现代理方法textView:shouldInteractWithURL:inRange,处理点击超链接的回调(打开对应...我们希望通过本"; "then_click_Agree" = " ,希望您仔细阅读,充分理解协议中的内容后再点击同意。"...addAttribute:NSForegroundColorAttributeName value:HWColor(6, 53, 253) range:str4Range]; 1.2 实现代理方法 处理点击超链接的回调
iOS网络编程之四——请求类NSURLRequest使用详解 一、引言 在前面几篇博客中,介绍了iOS开发中的网络编程相关内容并且介绍了常用了两个平行的网络框架NSURLSession...前几篇博客地址如下: 1.iOS网络框架介绍:http://my.oschina.net/u/2340880/blog/618460。... over IP control traffic NSURLNetworkServiceTypeVideo = 2, // Video traffic NSURLNetworkServiceTypeBackground... = 3, // Background traffic NSURLNetworkServiceTypeVoice = 4 // Voice data }; */ @property (readonly...无法设置与修改。
image-20220520182722773 SwiftUI 1.0( iOS 13、Catalina ) 在视图中,开发者通常需要处理两种不同的打开 URL 的情况: 点击一个按钮( 或类似的部件...SwiftUI 2.0( iOS 14、Big sur ) SwiftUI 2.0 为第一个场景提供了相当完美的原生方案,但仍无法通过原生的方式来处理第二种场景。...-20220520141225595 此种方法只能识别网络地址( 网页地址、邮件地址等 ),因此代码中的电话号码无法自动识别。...请注意,下面的代码使用的是参数类型为 String 的构造器,因此 Text 将无法自动识别内容中的 URL : let text = "www.wikipedia.org 13900000000 feedback...NSDataDetector[5] 是 NSRegularExpression 的子类,它可以检测自然语言文本中的半结构化信息,如日期、地址、链接、电话号码、交通信息等内容,它被广泛应用于苹果提供的各种系统应用中
在iOS11上,UITextView上的NSTextAttachment(表情)默认可以进行拖拽交互,但是却导致拖动光标时很容易触发这个交互(图示可以查看上面说到的微博国际版中的误触)。...if (@available(iOS 11.0, *)) { // 只在iOS11及以上才有这个属性 _textView.textDragInteraction.enabled = NO;...表情功能,UITextView都是用NSAttributedString进行赋值的,并且我们底层其实还是用上面说到的纯文本进行实现的,那么把 [笑死] 转成 ?...这里自己继承并实现了UITextView的子类PPStickerTextView,在这个类中重载复制、黏贴、剪切等操作,分别对应的方法如下: - (void)cut:(id)sender; //...将检测到是表情的文本替换成对应的图片 [attributeContent replaceCharactersInRange:self.selectedRange withString:@
Schmidt 近期接受了 Natan Rolnik 的访谈。Dave Verwer 同时也是苹果生态中最受欢迎的开发者周报—— iOS Dev Weekly[6] 的编者。...优化 VoiceOver 和 Voice Control (Optimizing for VoiceOver and Voice Control)[12] Bas Thomas Broek[13] VoiceOver...with You[16] 是苹果在 iOS 16 中引入的一项特性,旨在帮助用户在相关应用中快速找到在消息中共享的内容。...例如,用户可以直接在 Safari 中查看所有与他们共享的链接,无需离开浏览器。...Control (Optimizing for VoiceOver and Voice Control): https://t.ly/kWAVy [13] Bas Thomas Broek: https
app向iOS系统注册通知后,APNs 会返回这个标记该设备唯一性的token,然后把这个token传给我们的server作为推送消息的目标设备标记。...所以server通过这里可以获取无效的token然后数据库中清除。...、不同的证书、不同的地址、不同的token,所以实际中要注意能够一一对应,否则无法完成消息推送。...官方描述如下: For regular remote notifications, the maximum size is 4KB (4096 bytes) For Voice over Internet...官方链接描述 当要发送消息时后台按照如下格式拼接, image.png pushformat.png 然后APNs在按照此格式解析数据得到所需的token,然后发送给ios设备。 ?
百度百科定义:无障碍,在发展过程中没有阻碍,活动能够顺利进行。...每次切换焦点,手机都会语音播报当前焦点的类型和内容。你可以去手机的设置中搜索“读屏”、“无障碍”、“屏幕朗读”等关键词,开启这一辅助功能,体验一下。...下面是我个人罗列了一些常用操作:常用表现 安卓 Talk Back iOS Voice...(例如选择链接,则以上3个操作只会激活页面的链接,不会激活其它类型元素)不支持(部分软件向上滑动、向下滑动来选择) 转子操作,即双指在屏幕上一起顺/逆指针旋转 播放所激活元素的子元素(例如按单词播报元素文本...我们做无障碍测试时,经常遇到Android和iOS播报有差异。我们要求必须兼容iOS的语音播报,不会花太多心思去兼顾所有安卓机的语音播报软件。
开发小集锦 记录开发中的琐碎技巧,以备查阅....设置工程默认语言环境 weak 与 unowned 在swift的闭包中我们在使用self时为了避免循环引用的问题,经常使用weak self 或者unowned self,这两种方式既相似又略有区别...[weak self]在闭包中的 self 为可选类型 HttpTool.request("your-url").complete{ [weak self] response in self?....updateUI() } [unowned self]在闭包中的self 为非可选类型: 因此若闭包执行前self被释放,会造成crash HttpTool.request("your-url")....通用) 提醒事项 使用EKEventStore 与EKReminder实现添加事件到系统的提醒应用中 class ViewController: NSViewController { fileprivate
iOS AVDemo(13):视频渲染,用 Metal 渲染丨音视频工程示例 在音视频工程示例这个栏目,我们将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在...iOS/Android 平台上手音视频开发。...西瓜视频 iOS Voice Over 无障碍适配实践 本文从研发的视角出发,讲述了如何使用 Voice Over、如何适配 Voice Over 以及适配过程中如果遇到问题应该如何解决。...实战:使用 PyTorch 和 OpenCV 实现实时目标检测系统 在本指南中,我们将尝试向您展示如何开发用于简单对象检测应用程序的子系统,以及如何将所有这些组合在一起。...还有多重抽奖福利,扫描海报二维码或下方报名链接立即报名!
本文研究了目标声音检测(TSD),其目的是在给定目标声音的参考音频时,从混合音频中检测目标声音信号。我们提出了一种新型的目标声音检测网络(TSDNet),它由两个主要部分组成:条件和检测网络。...最近的研究表明,与模块化系统相比,端到端(E2E)多说话人ASR模型可以实现更高的识别精度。但是,由于这些模型依赖于完整的音频上下文,因此无法确保实时适用性。...最近的研究表明,与模块化系统相比,端到端(E2E)多说话人ASR模型可以实现更高的识别精度。但是,由于这些模型依赖于完整的音频上下文,因此无法确保实时适用性。...将该分离应用于从传统基频检测方法中提取的候选信号的校正,从而提高了F0估计的精度。在CSTR和TIMIT数据库的实验中,考虑了不同信噪比下的六种噪声,对所提出的方法进行了评估。...本文研究了目标声音检测(TSD),其目的是在给定目标声音的参考音频时,从混合音频中检测目标声音信号。我们提出了一种新型的目标声音检测网络(TSDNet),它由两个主要部分组成:条件和检测网络。
子 View 的顺序和子 View 返回的数组中的位置有关(storyboard 中左侧的树形结构图中的先后顺序)。...XR - iOS 12", "iPhone Xs Max - iOS 12", "iPhone 11 - iOS 13", "iPhone 11 Pro - iOS 13", "iPhone 11 Pro...XR - iOS 12", "iPhone Xs Max - iOS 12", "iPhone 11 - iOS 13", "iPhone 11 Pro - iOS 13", "iPhone 11 Pro...UITableViewDiffableDataSource 在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView...13 中 UICollectionView 推出了一种新的组合布局 UICollectionViewCompositionalLayout,这是一次全新的升级。
领取专属 10元无门槛券
手把手带您无忧上云