ios - FlipView Controller 字符在不同的地方

标签 ios objective-c text

我有一个翻转 View Controller ,可以翻转(而不是默认滚动)文本。我向项目添加了一个 txt 文件,并(因为它有 50,000 个字符)使用“substringWithRange”方法为每个页面创建一个子字符串。我在每个页面中有一定数量的字符,但它们的显示方式不同。我想知道如何让它们显示完全相同。这意味着我(最终)希望文本到达页面末尾,但是当我尝试这样做时,一些文本被切断。

这是我用来对文本进行子串的代码

if (self.pageIndex == 1)//self.txt is the string that has the entire .txt file in it. For each page I'm substringing it.
{
    self.txt = [self.txt substringWithRange:NSMakeRange(0,1300)];
}
if (self.pageIndex == 2)
self.txt = [self.txt substringWithRange:NSMakeRange(1300,1300)];

这是一个例子。如果您需要任何其他信息,请告诉我

第 1 页

enter image description here

第 2 页

enter image description here

即使我让它们具有完全相同数量的字符,它们也会在不同的物理位置结束

即使使用 courier(显然是固定字体),每个页面的文本仍然不同 enter image description here enter image description here

最佳答案

这是一种比例字体。 10 is 的宽度与 10 ms 的宽度不同。

比例字体:

iiiiiiiiii
嗯嗯嗯嗯

固定宽度字体:

iiiiiiiiii
mmmmmmmmmm

要么使用固定宽度的字体,要么找到一种方法,根据给定字体的所需文本长度,为每个页面提取适当数量的字符。

更新:

即使使用固定宽度的字体,您也会使用自动换行。不同长度的单词意味着每行由不同数量的字母组成。

你实际上只有两个选择:

  1. 使用固定宽度字体和字符换行。这很简单,但对于用户来说会很糟糕,因为单词会在中间被分割。
  2. 使用常规字体和自动换行。但是您将需要进行更复杂和更慢的计算来确定每个页面的适当文本长度以获得相同的结果。即使如此,它也不会准确,因为每页的最后一个单词长度可能会略有不同。

关于ios - FlipView Controller 字符在不同的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791739/

相关文章:

C# 将字符串行拆分为多个字符串

ios - 回到导航 Controller

ios - 下面的 NSObject 代码是多余的吗?

ios - Xcode 6.3.2 应用程序在加载启动屏幕后崩溃

objective-c - iPhone Cocos2D游戏编程教材中的循环引用

objective-c - NSURLSession dataTaskWithRequest 进度跟踪

c - 从文本文件中读取到 C 中的数组中的标记化

php - DOM:获取文档中的所有文本节点 (PHP)

ios - 使用 cordova-cli 构建 iOS 平台时出错

ios - 无法设置通过 loadView 创建的 UIScrollView 的 contentSize