问题标签 [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.

0 投票
1 回答
279 浏览

ios - 根据 NSString 的内容更改 UITextView 中文本的大小

我正在尝试使用来自 NSManagedObject 子类实例的内容(圣经阅读器应用程序中的经文)加载 UITextView。

我的 UITextView 是通过遍历选定章节中的经文并附加每个连续的经文来加载的。

上面的代码生成了正确的视图,但整个 UITextView 只允许一种大小的文本。

我想让每节经文之前的经文编号比其经文的字体更小,但还没有找到使它起作用的方法。我一直在阅读文档,似乎 TextKit 和 CoreText 应该可以通过使用属性字符串来实现这一点,但我似乎无法编译它。

我不想将视图加载为 UIWebView。

对此的任何建议将不胜感激。

0 投票
1 回答
47663 浏览

ios - 如何在 iOS 7 的 UITextView 中设置属性文本的颜色和对齐方式?

我的 textViews 的格式在 iOS 6 中运行良好,但在 iOS 7 中不再适用。我理解 Text Kit 的大部分底层内容都发生了变化。它变得非常令人困惑,我希望有人可以通过帮助我解决如此简单的事情来帮助理顺它。

我的静态 UITextView 最初被为其textColortextAlignment属性分配了一个值。然后我做了一个NSMutableAttributedString,给它分配了一个属性,然后将它分配给了 textView 的attributedText属性。对齐和颜色在 iOS 7 中不再生效。

我怎样才能解决这个问题?如果这些属性不起作用,那么它们为什么会存在呢?下面是 textView 的创建:

0 投票
0 回答
177 浏览

ios - 当没有单行触及左边缘时,UILabel 的自动布局失败

我在 UILabel 中有一个 NSAttributedString,如下所示:

其中 |'s 标记 UILabel 最大首选宽度。缩进的行已使用段落样式属性缩进:

结果是整个文本变得非常狭窄。像这样的东西:

有两种方法可以“解决”这个问题:

  1. 如果我删除段落样式,那么它可以工作(没有缩进)。
  2. 如果我在某处没有段落样式的行

==>

这些对我来说都不是一个可行的解决方案。很难理解发生了什么,但显然 autolayout 感觉在这种情况下它无法确定布局的宽度。

有没有其他人看过这个?有解决办法吗?

0 投票
0 回答
638 浏览

ios - iOS UITextView:如何创建双倍行距输入文本字段?

这是对这个问题的跟进。我正在尝试创建一个用于输入文本的双倍行距 UITextView。

在我的自定义 UITextView 中,我覆盖了 -caretRectForPosition: 以限制光标的高度。但是现在当我选择文本时,选择矩形的高度仍然太高: 红色选择矩形太高

我试图通过覆盖 UIView 的 -selectionRectsForRange 来克服这个问题。不幸的是,该返回数组中的对象是 UITextSelectionRects,它是一个不可变的子类。所以我创建了自己的子类,使高度可变,并像这样在循环中更改它:

现在选择矩形的大小是正确的,但是用于扩大和缩小选择区域的蓝色手柄被困在左上角。

手柄被困在左上角。 选择高度正确

知道是什么导致把手放在错误的位置吗?我可以尝试将它们放在正确的位置吗?

0 投票
9 回答
28049 浏览

ios - 如何在 UILabel 中找到文本子字符串的 CGRect?

对于给定的NSRange,我想CGRect在 a中找到UILabel与 that 的字形相对应的a NSRange。例如,我想CGRect在“The quick brown fox jumps over the lazy dog”这句话中找到包含“dog”这个词的那个。

问题的视觉描述

诀窍是,UILabel有多行,而文本真的是attributedText,所以要找到字符串的确切位置有点困难。

我想在我的UILabel子类上编写的方法看起来像这样:


详情,有兴趣的朋友可以看看:

我的目标是能够创建一个具有 UILabel 确切外观和位置的新 UILabel,然后我可以对其进行动画处理。我已经弄清楚了其余的部分,但目前正是这一步阻碍了我。

到目前为止,我为尝试解决该问题所做的工作:

  • 我希望在 iOS 7 中会有一些 Text Kit 可以解决这个问题,但我看到的大多数 Text Kit 示例都集中在UITextViewand上UITextField,而不是UILabel.
  • 我在这里看到了关于 Stack Overflow 的另一个问题,该问题有望解决该问题,但接受的答案已有两年多的历史,并且代码在属性文本中表现不佳。

我敢打赌,这个问题的正确答案涉及以下之一:

  • 使用标准的 Text Kit 方法在一行代码中解决此问题。我敢打赌它会涉及NSLayoutManagertextContainerForGlyphAtIndex:effectiveRange
  • 编写一个复杂的方法,将 UILabel 分成几行,并在一行中找到字形的矩形,可能使用 Core Text 方法。我目前最好的选择是拆开@mattt 的优秀TTTAttributedLabel,它有一种方法可以在某个点找到一个字形 - 如果我将其反转并找到一个字形的点,那可能会起作用。

更新:这是一个 github 要点,其中包含我迄今为止尝试解决此问题的三件事:https ://gist.github.com/bryanjclark/7036101

0 投票
2 回答
3688 浏览

ios7 - UITextView textContainerInset 不尊重底部插入值

我有一个显示 NSAttributedString 的 UIView。它设置为调整大小以适应其内容。

我想在文本和视图之间创建一些填充,但是它不是很有效。如果我这样做...

...然后左右边缘被填充,顶部和底部没有空间。这是对的。然后我添加一个顶部插图:

现在顶部有 15 点填充,但突然底部也填充了一点(大约 10 点)。

如果我然后添加 15 点底部填充,底部会变得太大,并且间距始终不一样。相反,我不得不捏造它:

这是iOS 7的错误还是我误解了什么?我讨厌在不了解发生了什么的情况下捏造底部价值。

0 投票
1 回答
306 浏览

ios - 插入符号在 UITextView 和 Text Kit 中的长按空白处消失

我正在使用 Text Kit 在文本视图上呈现一些富文本。

我的问题是 iOS 7 中似乎存在插入符号放置的错误。每当您长按文本视图中的空白区域时,插入符号似乎会消失,并且不会出现带有(剪切、复制、选择等)的弹出菜单。

您可以通过观看这个短片更好地理解这个问题:http: //cl.ly/1E0s2A2S0t2t

您可以通过从 Apple 下载 IntroToTextKit 示例代码自行尝试。这是该项目的链接: http: //cl.ly/0h0T0V1Z0D3H

对此的任何解决方法将不胜感激。

0 投票
1 回答
1387 浏览

objective-c - 更改 UIFontTextStyleHeadline 的默认字体

在使用界面生成器和 iOS7 UIFontTextStyleHeadline 时,我将标题标签设置为 UIFontTextStyleHeadline

(我想也可以使用以下代码来完成:)

问: 这很好用,但我想只使用HelveticaNeue-Thin来获得相同的功能

举个例子:

这样做的优雅方式是什么?

0 投票
0 回答
556 浏览

ios - TextKit 在图形上下文顶部绘制多余的内容

我通过自己构建 iOS 7 文本工具包“堆栈”类并要求绘制字形来直接绘制到图形上下文中。这是我的自定义 UIView 子类的drawRect:实现:

看起来很无辜,但奇怪的事情正在发生:多余的文本(即文本容器大小的文本过多)被绘制为图形上下文顶部的额外线:

在此处输入图像描述

我可以通过将绘制字形的范围限制为适合文本容器的字形来绕过这个问题:

但我觉得我不应该那样做。而且我还在 UITextView 中看到了这个问题(我不是发出绘图调用的人),所以我有点担心这只是 iOS 7 的 TextKit 中的一个错误。

0 投票
1 回答
852 浏览

ios - 如何在 iOS 7 上完美对齐文本

我正在尝试水平对齐具有不同大小和字体的文本位。

这是我想要的结果(用 scribus 制作):

小样

您可以看到文本完全水平对齐(到像素)。

我尝试使用基本的 UITextView 来实现这一点,并证明文本的合理性。这是我得到的:

正当的

您可以看到文本未与像素水平对齐。我试过居中,但仍然不够好:

居中

如果事情还不够难,第一行和第三行是动态文本……所以它们的大小会发生变化。

我看了一下textkit,但没有发现任何结论......

我的线索是:

  1. 在给定宽度的情况下找到文本的最佳字体大小。
  2. 空间字形均匀,使文本边界框等于所需的宽度。

但我不知道该怎么做。有什么线索吗?谢谢 !