2012-05-18 4 views
0

특정 챕터에 대한 일부 텍스트를 표시하려면이 코드가 필요합니다. 첫 번째 챕터의 텍스트가 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 내가 내 필요가 난 다음 장과 함께, 코드를 추가 할 .SO 내가 "결합"의 첫 번째 챕터 텍스트를 가지고있다 text.so 코어를 통해 텍스트를 렌더링 뷰입니다 다음 장을 보여주기위한 것입니다

delegatee.selectedChapter = [NSString stringWithFormat:@"%d",[delegatee.selectedChapter intValue] + 1]; 
    [delegatee reloadVerses]; 
    [self resetReadViewToVerse:1]; 

결합 된 텍스트는 다음과 같습니다. 1 haii 이것은 내 첫 번째 문장입니다 2 이것은 내 두 번째 문장입니다 3 이것은 내 세 번째 문장입니다, 등등 에칭. 세 번째 문장이 마지막 텍스트라면/n 개행에서 다음 챕터 텍스트가 필요합니다. 나는 이것을 넣었습니다. 버튼을 클릭하여 다음 챕터로 이동합니다.하지만 각 챕터를 종료 한 후 자동으로 필요합니다.

가능합니까? 미리 감사드립니다.

+0

'allSelectedVerseEnglish'가 선택된 장의 모든 절을 반환하고 장 번호로 절을 가져올 방법이 없다는 것을 정확히 이해합니까? –

+0

@ A-Live 예 선택한 장의 모든 절을 반환합니다. 장 번호 – stackiphone

+0

@ A-Live로 절을 가져올 방법이 없지만 책, 장 및 절을 선택할 수 있습니다. – stackiphone

답변

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]; 
,536을

참고 : 형식 리터럴에서 줄 바꿈 문자 \n을 잃어 버렸습니다. 코드는 초안이며 구현할 방법이 있습니다.

+0

chi, thanks 대단히 – stackiphone

+0

장마다 줄을 매다는 법을 모르겠다. 나는 거기서 쳤다. 그러나 코드는 정말로 정확하다. 그러나 나는 그것을 생각할 수 없다고 생각한다. 내 실수 야. – stackiphone

+0

'UIScrollView' 서브 클래스 ('UITextView'와 같이)가'multiPageView' 구현물인지 모르겠지만 새로운 라인을 추가하는 대신 while 루프에서 다음 장의 전체 절을 추가 할 수 있습니다 . 중지 할 조건은 a) 모든 절에 b) multiPageView.contentSize가 추가됩니다.height> kMultiPageViewHeight' 인 경우, "page"contentInset을 변경하여 a)의 미리 정의 된 너비와 높이로 b) 또는 contentSize에 대한 초과 라인을 잘라낼 수 있습니다. 희망이 도움이됩니다. –