UI滚动视图中的Uitext Content SIze,底部的文本被截断

时间:2011-10-19 14:51:00

标签: iphone objective-c uiscrollview uitextview

我的UIScroll里面有uitextview。

我的应用看起来像这样:

rootviewcontroller - > PhoneContentControllerUIScrollViewPageControl) - > DetailControllerUITextViewUIWebViewUILabel)。

My Flow是这样的:

设置UIScrollView默认尺寸 - >在DetailController中调用UITextView(计算viewDidLoad及其中的其他页面 - > PhoneContentControllerDetailController - >获取总高度尺寸更改UIScrollView

的高度

这是PhoneContentControllerloadSCrollViewWithPage)中的代码:

scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, [detailController.getTotalHeight]);

详细控制器中的代码(viewDidLoad):

summaryBlogParsed = [summaryBlogParsed stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
[self.itemSummaryText setText:summaryBlogParsed];

CGRect frameTextView = self.itemSummaryText.frame;    

frameTextView.size.height = self.itemSummaryText.contentSize.height;

self.itemSummaryText.frame = frameTextView;

DetailController getTotalHeight中的此代码:

 CGRect cgRect = [[UIScreen mainScreen] bounds];

CGFloat scrollFrame = (cgRect.size.height/2) + itemSummaryText.frame.size.height;

                       return scrollFrame;

我可以滚动滚动视图,但textview不会加载所有字符串。只有一半,但我可以向下滚动,但空白页:(。

任何人都可以帮助我?

谢谢

2 个答案:

答案 0 :(得分:0)

使用此功能设置滚动视图的内容大小。

-(void)setContentSizeOfScrollView:(UIScrollView*)scroll
{
    CGRect rect = CGRectZero;

    for(UIView * vv in [scroll subviews])
    {
        rect = CGRectUnion(rect, vv.frame);
    }

    [scroll setContentSize:CGSizeMake(rect.size.width, rect.size.height)];
}

将所有控件添加到滚动视图后,调用此函数并传递yourScrollView作为参数。希望这能帮助你.........

答案 1 :(得分:0)

根据Apple的说法......在调试文本视图问题时,请注意这个常见的陷阱:

在滚动视图中放置文本视图。文本视图处理自己的滚动。您不应该在滚动视图中嵌入文本视图对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆和错误处理。