我正在使用此代码来显示特定章节的一些文本,我正在使用核心文本。但我需要的是,当第一章的文本结束时,它希望在newline.my代码中显示下一章文本以供显示文字是
NSMutableString *combined = [NSMutableString string];
for(NSUInteger idx = 0; idx < [delegatee.allSelectedVerseEnglish count]; idx++) {
[combined appendFormat:@" %d %@",
idx + 1,
[delegatee.allSelectedVerseEnglish objectAtIndex:idx]];
}
self.multiPageView.text =combined;
multipageview是我通过核心文本呈现文本的视图。所以我需要的是我在“合并”中有第一章文本。所以我想附加下一章的组合,下一章的代码是
delegatee.selectedChapter = [NSString stringWithFormat:@"%d",[delegatee.selectedChapter intValue] + 1];
[delegatee reloadVerses];
[self resetReadViewToVerse:1];
组合包含这些文本... 1 haii这是我的第一句2这是我的第二句3这是我的第三句,蚀刻等。如果第三句是最后一个文本,那么在/换行我需要下一章文字.. 我把这个代码放在按钮中导航到下一章,但我在结束每一章后自动需要它。
有可能吗? 提前谢谢。
答案 0 :(得分:0)
首先,您可能想要准备一个方法来接收章节编号的经文(以获得下一章的经文,因为您想要显示它)。
在for
循环和self.multiPageView.text =combined;
之间,您应该计算最后一个“页面”中占用的行数,这样您就可以根据下一章计算要填充的行数最大“页面”行数。
现在,当你有下一章经文和要添加的行数时,你可以很容易地附加下一章节线来填充使用while
循环的“页面”。需要考虑两个重要条件:
结果代码如下所示:
NSMutableString *combined = @"";
NSArray * selectedChapterVersesArray = [delegatee.allVersesForLanguage:kEngLang atChapter:delegatee.selectedChapter];
if (selectedChapterVersesArray != nil && [selectedChapterVersesArray count] > 0)
// prepare the selected chapter text
for(NSUInteger idx = 0; idx < [selectedChapterVersesArray count]; idx++) {
[combined appendFormat:@" %d %@ \n",
idx + 1,
[selectedChapterVersesArray objectAtIndex:idx]];
}
// calculate the lines found to be added from the next chapter - to be implemented !
NSUInteger linesToAddFromNextChapter = [self emptyLinesForMultipageView:self.multipageview withText:combined];
if (delegatee.numberOfChapters > delegatee.selectedChapter)
{
// there's a next chapter
NSArray * nextChapterVersesArray = [delegatee.allVersesForLanguage:kEngLang atChapter:delegatee.selectedChapter+1];
// append the next chapter text
NSUInteger linesAdded = 0;
BOOL nextChapterHasLinesToAdd = [nextChapterVersesArray count] > 0;
while (linesAdded < linesToAddFromNextChapter && nextChapterHasLinesToAdd) {
// append one line, inc linesAdded, recalculate nextChapterHasLinesToAdd
}
}
}
self.multiPageView.text =combined;
delegatee.selectedChapter = [NSString stringWithFormat:@"%d",[delegatee.selectedChapter intValue] + 1];
[delegatee reloadVerses];
[self resetReadViewToVerse:1];
注意,你在格式文字中丢失了换行符\n
,代码只是一个草稿,还有一些方法可以实现。