问题标签 [textkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios7 - iOS 7 UITextView:重新打开应用程序后,nstextattachment 的大小变为 2 倍
我正在使用 ios7 中的 Text Kit 构建一个笔记编辑器。早些时候,我在渲染自定义大小的 NSTextAttachment 时遇到了麻烦,因为它在很大程度上减慢了渲染速度。我通过缩放图像然后将它们添加到 textview 解决了这个问题。你可以在 iOS 7.0 UITextView 中找到我的答案,之后变得非常慢向其中添加图像 缩放图像后,textview 渲染运行良好,没有任何延迟。textview 的属性文本存储在核心数据中。在应用程序的运行会话期间,textview 正确显示图像。即使在核心数据中保存属性文本并检索它之后再次显示在 textview 上,图像看起来很好。但是在杀死应用程序并再次运行应用程序后。图像放大到 2 倍大小。在缩放图像时,我使用以下函数并使用 [[UIScreen bounds] scale] 来维护图像质量。
如果我将图像缩放到 1.0,图像不会扩展,但图像质量非常差。
我认为问题出在哪里? 问题在于布局管理器。
我尝试过 的我尝试将 NSLayoutManager 子类化并覆盖 - (void)drawGlyphsForGlyphRange:(NSRange)glyphsToShow atPoint:(CGPoint)origin 我看到的是在运行应用程序的新会话时附件大小加倍。如果我尝试检查附件的大小并调整它的大小。滞后又开始了。我很早就被这个问题困扰了。任何建议都将不胜感激。
ios - iOS 7 使用 AutoLayout 自动调整 UITextView 的大小会随机断行
我想要一个简单UITextView
的自动调整大小以适应其内容。
使用 AutoLayout,这非常简单:我将 添加UITextView
到我的视图中,设置两个约束以将 锚定UITextView
在左上角,禁用滚动,仅此而已。
预期的行为是每次我输入一个字符时,绿色文本视图都会调整其框架的大小。但这仅部分有效:对于某些文本,文本视图决定将其呈现在两行上,而不是仅在当前行的末尾添加新字符:
我猜这与新的 TextKit 框架有关,我使用NSLayoutManager
's 和NSTextContainer
's 属性来尝试控制这种行为,但无济于事。
另请注意,如果我“硬编码”文本视图的宽度(例如使用宽度约束),字符会正确附加在行尾,但随后我会丢失文本视图的水平自动调整大小属性。
我怎样才能表明UITextView
我不希望它断线?
编辑:经过进一步测试,该错误似乎只出现在 32 位拱门上。
ios - NSLayoutManager 可以在后台线程上安全使用吗?
即使 iOS 文档说:
NLayoutManager、NSTextStorage 和 NSTextContainer 可以从子线程访问,只要应用程序保证从单个线程访问即可。
我偶尔会遇到这个异常:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“仅在主线程上运行!”
这是回溯:
需要注意的一件事是 myNLayoutManager
附加到UITextView
. 您可以将其视为UITextView
用于在后台线程中进行文本布局的普通方法。
那么这是否意味着与文档所说的相矛盾,NLayoutManager
如果它附加到单个后台线程,则不能安全地使用它UITextView
?
ios7 - iOS7:CTLine 不尊重 NSBaselineOffsetAttributeName
在 iOS7 中,使用设置了正偏移或负偏移(用于下标和上标)NSLayoutManager
的withNSTextStorage
范围NSBaselineOffsetAttributeName
- 生成的范围当前以垂直偏移呈现。
CTTypesetterCreateLine
但是,在同一设备上使用较低级别的 Core Text APINSTextStorage
会生成一个CTLine
渲染所有范围而没有垂直偏移的。
由于 TextKit 是在 iOS7 中引入的,我担心这个属性可能只能通过更高级别起作用,NSLayoutManager
而不能通过CTTypesetter
.
有没有办法让垂直基线偏移在 iOS7 上使用CTTypesetter
?
ios - TextKit 和旁白
我一直在关注 iOS7 Day-by-Day 多页 TextKit 教程,但遇到了可访问性问题。本教程的代码在这里:iOS7 Day-by-Day
问题是每个文本视图(每列一个,每个“页面”两个)似乎包含整个字符串,并且启用 VoiceOver 时,每次一列获得焦点时,都会从开头读取文本字符串到最后,而不是读取列中实际可见的文本。
textviews/columns 是使用新的 iOS7 方法创建的
UITextView *textView = [[UITextView alloc] initWithFrame:textViewFrame
textContainer:textContainer];
如何让 VoiceOver 只读取每列中的可见文本?
ios - 将制表位之前的文本向右对齐,之后向左对齐
我正在使用 Text Kit 在我的应用程序中布局一些自定义文本,并且我想创建漂亮的列表,并使用正确对齐的枚举器。我需要文本看起来像这样:
粉线不是想要的效果的一部分,而是强调枚举数应该如何对齐(即它们需要右对齐,但左边的文本仍然应该左对齐)。
我已经实现了这个要求的列表样式(枚举器目前是左对齐的)。为此,我将枚举数添加为字符串,其后带有一个制表符 ( \t
),并在所需位置添加一个自定义制表位 ( NSTextTab
) 到NSParagraphStyle
. headIndent
通过将 设置为与 相同的位置来缩进后续行NSTextTab
。
关于如何根据需要对齐枚举器的任何想法?
ios - UILabel 粗体/突出显示所有出现的子字符串
我在自定义表格单元格中有多个 UILabel。这些标签包含不同的文本或不同的长度。
就目前而言,我有 UILabel Subclassed 允许我实现这些方法
这使我可以调用[cell.StoryLabel boldSubstring:@"test"];
哪个将BOLD单词“test”的第一次出现。
我所追求的是能够创建新的子类方法或扩展我已经拥有的方法,以允许我替换标签中指定单词的所有出现。
我研究了许多方法,包括 3rd 方框架。我遇到的麻烦是这对我来说是一个学习过程。我自己尝试完成这项工作对我来说会更有益。
提前致谢!
ios - NSTextContainer excludePaths 冻结应用程序并在 iOS 7.1 上使用 99% 的 CPU - 解决方法?
我正在尝试使用 NSTextContainer 的 excludePaths 排除 UITextView 中的正方形,如下所示:
这在 iOS 7.0 中运行良好:
然而,在 iOS 7.1 中,这将导致lineFragmentRectForProposedRect:atIndex:writingDirection:remainingRect:
NSTextContainer 某处出现无限循环,占用 99% 的 CPU 并疯狂地泄漏内存。该应用程序完全没有响应,最终由于内存使用而终止。显然这是 iOS 7.1 中的一个错误。
当我将排除矩形的 x 原点仅更改一个点(原点为 {1,0})时,它可以工作,但看起来很糟糕:
该错误似乎仅在第一行的第一个字符受排除矩形影响时才会发生。当我将排除矩形更改为 {0,30} 时,它也可以工作:
但显然这不是我想要的。有谁知道我可以如何解决这个错误?
ios - Using TextKit with storyboards
I have a UITextView
in a storyboard with a UINavigationController
, which looks like this:
It has an autolayout constraint at the top to prevent the uppermost text from being hidden beneath the navigation bar and a constraint to the left, right and bottom.
I need to make use of a custom NSTextStorage
subclass, which I understand requires me to instantiate the UITextView
manually and insert it into the view. My question is, how do I mimic these constraints with code?
Here is the code I've written to initialize the UITextView:
As an aside, I could get around this if there were a way to use a custom UITextStorage
subclass with a UITextView
in a storyboard, am I mistaken in thinking this is impossible?
ios - NSTextAttachment 自定义视图
NSTextAttachment
是否可以在要在 iOS 上显示的位置显示自定义视图?我有自定义文本存储和布局管理器子类,但我不确定将代码放在哪里以实际添加子视图。
(我想要这个的原因是为了支持内联方程编辑。我有一个自定义文本字段类,它允许用户输入一个方程,我希望这个视图被添加到另一个文本视图的正文中。)
我看过这个教程,虽然它似乎是一个很好的起点,但它并没有涵盖实际绘制文本附件的位置。那么,具体来说,我应该重写哪些方法来添加自定义视图来代替默认的文本附件图标?
请让我知道我想做的事情是否可行,或者我是否以错误的方式去做。谢谢你的帮助!