草庐IT

nslayoutmanager

全部标签

swift - 无论我做什么,NSLayoutManager 都会隐藏换行符

我试图在我的NSTextView子类中显示不可见字符,例如换行符。覆盖NSLayoutManager的drawGlyph方法这样的常用方法是一个坏主意,因为它太慢并且不能正确处理多页布局。我想做的是重写NSLayoutManager的setGlyph方法,这样它将用“¶”字形替换不可见的“\n”字形,用“∙”替换“”。它适用于""空格字形,但对换行符没有影响。publicoverridefuncsetGlyphs(_glyphs:UnsafePointer,propertiesprops:UnsafePointer,characterIndexescharIndexes:UnsafeP

ios - NSLayoutManager、boundingRectForGlyphRange 和表情符号

我正在使用NSAttributedString的drawInRect(rect:CGRect)方法显示可能包含表情符号的文本。因为我想检测文本上的点击,所以我使用以下方法查看点击了哪个字符:lettextStorage=NSTextStorage(attributedString:attributedString)letlayoutManager=NSLayoutManager()layoutManager.usesFontLeading=truetextStorage.addLayoutManager(layoutManager)lettextContainer=NSTextCont

ios - NSLayoutManager boundingRectForGlyphRange 关闭一些点

我想在UITextView中“突出显示”特定的单词,而不是使用纯色(可以通过NSAttributedString),而是使用渐变和其他一些奇特的效果。因此,我决定有必要手动创建一个View并使用给定文本的边界矩形覆盖(或底层)它。令我惊讶的是,事实证明这非常简单。示例在UIViewController中,txtView是作为IBOutlet连接的UITextView:overridefuncviewDidLayoutSubviews(){super.viewDidLayoutSubviews()//ConvertingtoNSStringasIneedaNSRangeforglphyR

ios - 将 TextView 的属性字符串分割为(可引用的)部分

我正在尝试实现一个非常简单的文本编辑器,它应该与macOS上的NSTextView和iOS上的UITextView一起工作。此文本编辑器有一个工具栏按钮“SectionBreak”,每次单击它都会在当前光标位置插入一个新节。一个部分应该是:在视觉上可识别作为一个部分(通过在两个后续部分之间添加视觉分隔符并可能添加一些垂直空白),可引用。用户应该能够在编辑器中看到所有部分的列表,并且通过单击该列表中的一个项目,TextView应立即滚动到该部分的开头。在anotherquestion我问了如何解决第一个问题,不幸的是,我还没有找到关于那部分的答案(即使有solutionthatworks

ios - 将 TextView 的属性字符串分割为(可引用的)部分

我正在尝试实现一个非常简单的文本编辑器,它应该与macOS上的NSTextView和iOS上的UITextView一起工作。此文本编辑器有一个工具栏按钮“SectionBreak”,每次单击它都会在当前光标位置插入一个新节。一个部分应该是:在视觉上可识别作为一个部分(通过在两个后续部分之间添加视觉分隔符并可能添加一些垂直空白),可引用。用户应该能够在编辑器中看到所有部分的列表,并且通过单击该列表中的一个项目,TextView应立即滚动到该部分的开头。在anotherquestion我问了如何解决第一个问题,不幸的是,我还没有找到关于那部分的答案(即使有solutionthatworks

ios - 使用 NSLayoutManager 创建动画文字效果?

在WWDC2013的第220节课(高级文本布局和文本工具包效果)中他们特别说NSLayoutManager可以与NSTextStorage和NSTextContainer结合使用来创建高级文本动画。他们没有说明如何。我想使用NSLayoutManager/NSTextStorage/NSTextContainer创建自定义文本动画。简而言之,我想为单个字形的大小和位置设置动画,并淡化和取消淡化特定字形。NSLayoutManager的动画似乎没有专门的方法或文档,我找到了关于这件事的唯一教程ishere.但是,它展示了如何将NSLayoutManager改造为动画,而不是如何按照预期的

ios - 使用 NSLayoutManager 创建动画文字效果?

在WWDC2013的第220节课(高级文本布局和文本工具包效果)中他们特别说NSLayoutManager可以与NSTextStorage和NSTextContainer结合使用来创建高级文本动画。他们没有说明如何。我想使用NSLayoutManager/NSTextStorage/NSTextContainer创建自定义文本动画。简而言之,我想为单个字形的大小和位置设置动画,并淡化和取消淡化特定字形。NSLayoutManager的动画似乎没有专门的方法或文档,我找到了关于这件事的唯一教程ishere.但是,它展示了如何将NSLayoutManager改造为动画,而不是如何按照预期的

ios - 带有 TextKit 的 UITextView 中的动画 UIImage

我有一个UIImage,它包含多个图像帧和一个从动画GIF文件切片在一起的持续时间。如果我在UIWebView中加载图像,它将按预期进行动画处理,但我想改用UITextView。显而易见的选择是使用带有自定义NSLayoutManger和许多自定义NSAttributedString属性的TextKit来实现各种绘图效果。我有一个UITextView,我想为它提供一个NSAttributedString,其中包含我需要内联显示的所有图像的NSTextAttachment。它工作正常,除了当我加载这些动画UIImages之一时,它们不会通过它们的帧进行动画处理。关于如何实现这一目标的任何

ios - 带有 TextKit 的 UITextView 中的动画 UIImage

我有一个UIImage,它包含多个图像帧和一个从动画GIF文件切片在一起的持续时间。如果我在UIWebView中加载图像,它将按预期进行动画处理,但我想改用UITextView。显而易见的选择是使用带有自定义NSLayoutManger和许多自定义NSAttributedString属性的TextKit来实现各种绘图效果。我有一个UITextView,我想为它提供一个NSAttributedString,其中包含我需要内联显示的所有图像的NSTextAttachment。它工作正常,除了当我加载这些动画UIImages之一时,它们不会通过它们的帧进行动画处理。关于如何实现这一目标的任何

ios - 点击 UILabel 的一部分文本

我有一个问题,boundingRectForGlyphRange总是返回CGRect.zero“0.0,0.0,0.0,0.0”。例如,我正在编码以触摸UILabel功能的一部分文本。我的文本第一部分是任何文本,第二部分是阅读更多。我希望点击识别器仅在我触摸阅读更多时工作。如果我触及UILabel上的任何一点,CGRectContainsPoint总是返回true,然后调用操作。这是我的代码:overridefuncviewDidLoad(){super.viewDidLoad()//ThefullstringletfirstPart:NSMutableAttributedString