0

特定の章のテキストを表示するためにこのコードを使用していますが、コアテキストを使用しています.しかし、最初の章のテキストが終了すると、次の章のテキストを改行で表示したい.テキストを表示するための私のコードは

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 こんにちは、これが私の最初の文です 2 これが私の 2 番目の文です 3 これが私の 3 番目の文です ,,etch など..3 番目の文が最後のテキストの場合、/n 改行で i次の章のテキストが必要..次の章に移動するには、このコードをボタンに配置しますが、各章を終了した後に自動的に必要になります。

出来ますか?前もって感謝します。

4

1 に答える 1

0

まず、章番号で節を受け取るメソッドを用意しておくとよいでしょう (表示したい次の章の節を取得するため)。

forループと最後の「ページ」で占有されている行数を計算する必要がある間self.multiPageView.text =combined;、これにより、最大「ページ」行数に基づいて次の章から入力される行数を計算できます。

while次の章の詩と追加する行数の両方があれば、ループを使用して次の章の行を簡単に追加して「ページ」を埋めることができます。考慮すべき重要な条件が 2 つあります。

  • 次の章がない可能性があります-次の章のテキストの追加をスキップしたり、次の章のボタンを無効にしたりします。
  • 入力する最後の「ページ」に空の行はありませんが、次の章があります - 次の章のテキストの追加をスキップしますが、次の章のボタンが有効になっています

結果のコードは次のようになります。

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コードは単なるドラフトであり、実装するメソッドがあります。

于 2012-05-18T14:52:26.277 に答える