首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS文本布局探讨之一——文本布局框架TextKit浅析

TextKit是一个偏上层的开发框架,iOS7以上可用,使用它开发者可以方便灵活处理复杂的文本布局,满足开发中对文本布局的各种复杂需求。...TextKit实际是基于CoreText的一个上层框架,其是面向对象的,如果TextKit中提供的API无法满足需求,可以使用CoreText中的API进行更底层的开发。        ...TextKit框架中,提供了几个类分别对应处理上述的必要条件: 1.NSTextStorage对应要渲染展示的内容。 2.UITextView对应要渲染的视图。...三、使用TextKit进行文本布局流程         个人理解,TextKit主要用于更精细的处理文本布局以及进行复杂的图文混排布局,使用TextKit进行文本的布局展示十分繁琐,首先需要将显示内容定义为一个...需要注意,TextKit进行布局的核心思路是最终的视图对应一个文本块Container,并不是一段文本内容Storage,LayoutManager会将完整内容根据其中Container的尺寸进行分页

1.7K10

UITableViewCell系列之(一)让你的cell支持二次编辑

每个开发者采用的方式不同,有的开发者直接modal/push的方式present出一个控制器,把tableViewCell内容传递到被modal/push的控制器的UITextViewUITextView...另外一种方法是直接在当前控制器(的界面)动画(甚至是没有动画)的形式弹出一个UITextViewUITextView修改文本内容,修改完成后再隐藏/移除UITextView,把内容重新显示到tableView...做的好的同学,可能还不忘弹出UITextView的时给tableView添加一个蒙版或者模糊效果突出重点,提高用户的体验度。以上的两种方式算是中规中矩。...此处称为frame1 根据frame1获取点击的那一行cell cell添加一个和label同样尺寸、同样坐标的UITextViewUITextView正好遮盖住label 把cell内容显示到...UITextView编辑文本,编辑完成后再跟新数据,刷新tableView。

7.8K40
您找到你想要的搜索结果了吗?
是的
没有找到

【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

, 处于高亮状态; 手放在按钮处于高亮状态; -- 禁用 : UI 控件关闭后, 处于禁用状态; 禁用状态的控件不可操作, 禁用操作 Interface Builder 取消 Enable 复选框;...-- Secure : 勾选后, 输入内容黑点显示, 用于输入密码; 2....UIScrollView 属性简介 (1) UIScrollView 简介 UIScrollView 简介 :  -- 显示内容多 : 可滚动控件, 可以使用手指拖动控件中的内容, 在其中可以显示多个屏幕的内容..., height 两个成员变量, 代表完整内容的宽度和高度; -- contentInset : 属性值是一个 UIEdgeInset 类型值, UIEdgeInset 是结构体, 包含 top, left..., 代表 UIScrollView 的可视区域显示内容滚动距离; (3) Scroll Indicators 属性 Scroll Indicators 属性 :  -- Shows Horizontal

6.5K20

输入框高度随输入内容变化

实现这个效果的关键点只有两点: 获取正在输入内容UITextView占用了多少行 让UITextView动态改变大小 一开始,为了解决第一个问题,我一直考虑怎么获取换行事件,发现只用捕捉\n输入即可...所以感觉这个思路太麻烦 对于第一点,有一个方便的计算方法,就是获取UITextView内容的高度比上UITextView的字体的高度,即可得到当前的行数。...好了,知道其集成UIScrollView就好办了,因为UITextView只有输入内容超过其显示范围才可以拖动,那就知道输入文字的bound就是UIScrollView的contentSize。...这样就知道输入内容的总大小了。 那每一行的高度呢? 按我以前的经验,行高差不多是字体大小的 4/3 倍.这样设值显示效果一般都挺好。所以可以设值一个宏定义来处理与字体相关的高度。...:(NSInteger)lines; @end 每次输入内容的时候计算行数,声明一个变量保存一次的行数,两次行数不一致即为发生换行 - (void)textViewDidChange:(UITextView

2.5K10

编码篇-iOS开发中的奇巧小伎

1.TableView不显示内容的Cell 2.百分号的转换 3.禁止手机睡眠 4.跳进app权限设置 5.collectionView的内容小于其宽高的时候是不能滚动的,设置可以滚动: 6.设置navigationBar...33、获取手机RAM容量 34、UITextView显示html文本 35、选中textField或者textView所有文本(我这里textView为例) 36、隐藏UITextView/UITextField...UIImagePickerController会导致我的statusbar的样式变成黑色 54.把navigationbar弄成透明的而不是带模糊的效果,(亲测有效) 诸技罗列 1.TableView不显示内容的...自己键盘打出的 % 汉字形式下的还是会报警告,并且不会显示出来.把上文的粘贴过去使用吧!...中显示html文本 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(20, 30, 100, 199)]; textView.backgroundColor

5.3K10

iOS AutoLayout全解

iOS 7(Xcode5)开始,Autolayout的开发效率得到很大的提升,苹果官方也推荐开发者尽量使用Autolayout来布局UI界面,减少纯代码的方式。...关于[VFL官网]详细知识,请查看官方的介绍 AutoLayout IB使用方式 为了让布局能够不同屏幕的size都能够表现正常,我们需要对其增加“约束”。...因为UITextView内容的高度不会影响systemLayoutSizeFittingSize计算。 下面是UITextView的实例: ?...s.height : defaultHeight; return 1 + height; } 随UITextView高度改变Cell高度 当UITextView内容改变的时候,计算自身高度,然后通知...UIStackView目前只支持iOS9+版本,如果要在iOS 7版本使用UIStackView,可以使用下面两个第三方库:OAStackView和TZStackView。

4.5K60

底牌项目中上传牌谱功能之编辑标准模式

在编辑标准模式下如果用户没有编辑某个条目那么预览中不能显示该条目,如果用户隐藏了某个条目,同样预览中不能显示。...可相比于我项目中的做法也不一定,我用了UITableView,而且感觉将问题复杂化了。 下面说说我使用了UITableView的做法。...至于编辑页面的实现,首先是创建UITableView,tableView的Cell使用了自定义的Cell,Cell的子视图主要是一个UITextView(用于编辑内容)、UILabel(标题)、UIButton...如果没有编辑内容那么某个text字符串就是nil,nil是不能被添加到数组中的,这是需要将为nil的字符串设置为@“”。预览页面,如果数组中某个元素内容为@“”那么就不显示内容。...情况3:如果某个有内容的条目被隐藏了则在预览页面不显示此条目。

83330

史上最全的iOS之UITextView实现placeHolder占位文字的N种方法

UITextView继承自UIScrollView这个实体类。这就导致了UITextView可以多行展示内容,并且还可以像UIScrollView一样滚动。...而UITextField只能单独的展示一行内容。从这个角度,UITextView功能上是优于UITextField的。...而开发中,我们经常会遇到既要占位文字,又要可以多行展示并且可以滚动的控件,单纯的UITextField或者UITextView都不能满足这种产品的需求。...图(一) 方法一 1.把UITextView的text属性当成“placeholder”使用。 2.开始编辑的代理方法里清除“placeholder”。...placeholder,而通过代码设置text的方式又不会调用文本改变的代理方法,所以再此根据text是否不为空判断是否显示placeholder。

9.9K40

iOS文本布局探讨之三——使用TextKit框架进行富文本布局

iOS文本布局探讨之三——使用TextKit框架进行富文本布局 一、引言         关于图文混排,其实以前的博客已经讨论很多,实际开发中,经常使用第三方的框架来完成排版的需求,其中RCLabel...CoreText是一个比较底层且十分强大的文本渲染框架,但是其使用起来并不是十分方便。较低版本的iOS系统中,要进行富文本排版十分困难。...三、为富文本附件添加用户交互能力         TextKit框架强大到只使用UILabel就可以完成复杂的富文本布局,但是UILabel有一个致命的缺陷,其无法进行用户交互。...结合使用NSTextAttachment与UITextView,这些都能实现。...可以为NSAttributedString属性字符串添加超链接,代码回调中监听此超链接的回调可以获取NSTextAttachment携带的附件内容,如此就可以自由的进行业务处理了,示例代码如下: -

2K20

实践-腾讯新闻图文详情实现

前言 实现了一个类似腾讯新闻图文详情页的效果,不多说,效果图 新闻.gif 草图 Paste_Image.png 步骤 创建一个 ScorllView 里面放上图片,可以左右滑动。...创建一个 UITextView 固定在底部位置。随着图片的滚动,更好 其中的文字内容。 关键点 整个效果中,UITextView的设置效果是关键点。...我们可以使用定时器定时去设置这个 UIImageView 的 Alpha 为1,就达到了一直显示右侧滚动条的效果了,(注意,这个定时器要注意销毁) timer = [NSTimer scheduledTimerWithTimeInterval...# 所以需要在每次更改文字内容时,通过 attributedText 来更改内容文字。...的字体间距设置和 右侧滚动条一直保持显示状态是关键点。

73020

iOS学习——tableview中带编辑功能的cell键盘弹出遮挡和收起问题解决

cell,导致我们无法很方便地查看到我们输入的内容,这样的体验是非常不好的。...,我们需要编辑的区域正好可以键盘的上方,这样我们正好也可以看到我们编辑的内容,方便我们进行修改和调整具体内容。   ...这可能以意想不到的方式改变他们的subviews,从而破坏HUD显示。...二 主控制器为UIViewController或其子类   其实最开始我就是用的UITableViewController,结果要提示的要提示的tips总是显示不设定的位置,后来才得以发现的这个bug...下面的流程就是UITextField或UITextView整个编辑过程中的详细流程步骤: 成为第一响应者之前,文本框调用其代理的textFieldShouldBeginEditing:  方法来允许或阻止其第一响应者

3.9K80

iOS学习——键盘弹出遮挡输入框问题解决方案

今天,我们就主要来说一下文本框输入的完整响应过程以及最后这个遮挡问题的解决方案。...一 文本框输入完整的响应过程    首先,我们要对UITextField和UITextView的输入输出进行控制,需要借助其对应的代理协议UITextFieldDelegate或UITextViewDelegate...中的一些方法,两者控制文本框中的相应流程稍有差别,但是都差不多,接下来,我们就从官方文档中开学习一下文本框输入完整的响应过程。...的实现在我之前的随笔中有专门讲到过了,想了解的小伙伴可以直接戳这里:ios学习——键盘的收起 三 文本框内容的获取   之前的分析中,我们知道,文本框在结束之后都会调用一个方法就是  textFieldDidEndEditing...: / textViewDidEndEditing: 方法,这个方法就是方便我们输入结束之后对文本框内容进行处理。

3.5K60

iOS隐私安全:用户协议及隐私政策弹框(包含超链接属性、demo支持中英文切换)

登录界面弹用户协议及隐私政策时,如果用户点击不同意,不能停留在弹框界面,需要隐藏弹框,否则无法通过OPPO安卓应用市场。...inRange,处理点击超链接的回调(打开对应URL Webview) 效果图(点击demo的右上架文字进行中英文切换) 文本框信息对应的中英文key,用于本地化 "Explain3" = "向您说明,使用我们的服务时...,我们如何收集、使用、储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。...本"; "Wemaycollect1"="您在使用我们的服务时,我们可能会收集和使用您的相关信息。...)) return NO; return [super canPerformAction:action withSender:sender]; } @end III、Q&A 完整内容请点击这里

1.8K30

假如把网络看成一个可编程平台

十多年前,每个人使用的都还是闭源的专有网络设备,但如今,大型数据中心大部分都运行在开源软件(主要是基于 Linux 的设备)。...为此,随着可编程交换机和网卡越来越多地投入使用,他们还开始控制数据包的处理方式。 Nick想知道这对未来的网络编程方式意味着什么。他认为,我们应该把网络看作一个可编程的平台,而不是一个独立元素的集合。...使用P4 extern功能,大部分程序代码仍然可以用C/C++编写,尤其是对于那些CPU运行的内容。其他代码将用P4编写,这样就可以转移到硬件加速器。...他举例说明了目前智能网卡中实现的一些功能,用于云中的虚拟机和容器安全。当云运营商想要向云中添加新的裸机系统(如超级计算机)时,他们无法信任这些设备的网卡,因为他们无法控制在其运行的软件。...最后,Nick表示,接下来的十年里,他相信网络将变得更加端到端可编程,这也会带来大量的网络创新。 附:完整演讲视频链接 https://www.youtube.com/watch?

45630

《iOS Human Interface Guidelines》——Text Field文本域

API NOTE 查看UITextField学习更多关于定义文本域并且自定义显示图像和按钮的内容。...一个文本域: 是一个固定高度的圆角区域 当用户点击它时自动显示键盘 可以包含系统提供的按钮,比如书签按钮 可以显示使用多种风格的文本(查看UITextView学习更多关于这个的内容使用文本域从用户获取小数量的信息...如果能够帮助用户理解如何使用的话,可以自定义一个文本域。比如说,你可以文本域的左边或右边显示自定义的图片,或者你可以添加一个系统提供的按钮,比如书签按钮。...一般来说,你应该在文本域的左边显示它的用途,右边显示其额外的特性,比如书签。 合适的话文本域的右边显示一个清除按钮。当这个元素存在的时候,点击它可以清除文本域的内容,不管你在其显示了任何图片。...阅读Managing the Keyboard学习更多关于在你的app中管理键盘的内容。注意你无法控制键盘的输入方法和布局,因为这些取决于用于的语言设置。 本文翻译自苹果官方开发文档

43120

iOS表情键盘的完整实现

市面上的表情键盘的分析 首先来看一下市面上主要的几个APP的表情键盘,平时使用的时候不会去关注细节,这次特意去使用了表情键盘,发现各个APP的体验还是有优有劣的。...首先是QQ和微信,这两者差不多,切换到表情键盘的时候都是没有光标的,这样的用户体验是非常不好的,没有办法输入表情的时候框选区域,也不能拖动光标进行特定位置的复制黏贴删除等操作,微信甚至输入框里显示的都不是点击的表情图片...UITextView的NSTextAttachment(表情)默认可以进行拖拽交互,但是却导致拖动光标时很容易触发这个交互(图示可以查看上面说到的微博国际版中的误触)。...} 与服务的的交互 我们输入框中输入的内容与服务端进行交互的时候都是用纯文本的,比如会把 "笑死了?"...转成 "笑死了[笑哭]" 这样的纯文本发到服务端,而不是直接发表情图片,向服务端请求内容的时候也是传回 "笑死了[笑哭]",然后客户端再根据正则匹配找出表情替换成对应的表情图片,然后显示到页面上。

1.9K30

iOS——配适深色模式

首先,所有 UIKit 本身所提供的 UI 控件(例如 UIView,UILabel,UITextView等等) ,只要没有针对颜色等内容特殊设置过,都会自动适配深色模式,这部分是我们开发者不需要去关心的...比如这样写: self.view.backgroundColor = [UIColor systemRedColor]; (滑动显示更多) 当然,系统提供的这些动态颜色肯定是无法满足我们的实际开发需求,...那么iOS7之前一般使用UIToolBar来做。 iOS8之后,苹果新增了一个类 UIVisualEffectView 来专门实现这种模糊效果。代码也很简单。...) iOS13之后,UIKit也为我们提供了四种动态模糊样式: UIBlurEffectStyleSystemChromeMaterial这种样式是用来指定运行在 macOS 的 iPad 应用的边框颜色的...如果我们希望某个单独的视图一种固定的显示模式来显示的话, 我们可以通过setOverrideUserInterfaceStyle这个方法来设置视图的显示模式。

1.5K10
领券