当父视图是UIScrollView UNTIL I scoll时,UITextView文本不显示

wgp*_*ubs 5 iphone objective-c uiscrollview uitextview ios

当我的代码在下面运行时,我有一个UITextView屏幕外UIScrollView配置的内部.不幸的是,如果"eventDetails"文本特别长,那么在我与其交互之前不会显示任何内容(例如,单击内部并拖动).ViewController's viewDidLoadUITextView

我的问题:如何拥有它以便文本显示在UITextView中而不强迫用户与第UITextView一个进行交互?

这是代码:

UITextView *txtDetails = [[UITextView alloc] initWithFrame:CGRectMake(-4, yOffset, page3ScrollView.frame.size.width, 0)];
[txtDetails setEditable:NO];
[txtDetails setScrollEnabled:NO];
[txtDetails setFont:[UIFont systemFontOfSize:12]];
[txtDetails resizeAndSetTextWithMaxSize:CGSizeMake(txtDetails.frame.size.width, 999999999) forText:eventDetails withAdditionalHeightOf:16.f];

[page3ScrollView addSubview:txtDetails];

CGRect frame = txtDetails.frame;
frame.size.height = [txtDetails contentSize].height;
txtDetails.frame = frame;

[page3ScrollView setContentSize:CGSizeMake(page3ScrollView.frame.size.width, txtDetails.frame.origin.y + txtDetails.frame.size.height)];
Run Code Online (Sandbox Code Playgroud)

谢谢

wgp*_*ubs 1

我能够通过仅在需要时设置 UITextView 的文本(例如即将出现在屏幕上)来实现此工作。下面是相关代码:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)sv 
{
    if (sv == scrollView) [self updatePagedView];
}

- (void)updatePagedView
{
    int currentPage = pageControl.currentPage;

    // *** loadDetailsPage3 is where I set the text ***
    if (currentPage == 2) {
        [self loadDetailsPage3];
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人有更好的解决方案或需要更多解释,请在评论中联系我。