1

我有一个包含一些内容的滚动视图。加载内容后,我使用以下代码移动到滚动视图的顶部

  [scrollViewCustom setContentOffset:CGPointMake(0.0, 0.0) animated:NO];

有用。除了一个例外:

我有一个UITextView. 如果我向其中添加一些文本,则滚动视图永远不会使用此代码返回顶部。我必须手动滚动到顶部。

在将文本添加到UITextView.

任何人都可以帮忙吗?谢谢。

注意:所以,这是解决方案:

基本上UITextView来源于UIScrollView并且因此,只要那里有一些文本,它就会尝试滚动以使文本可见。我已经更换UITextViewUILabel它,它就像一个魅力!

4

3 回答 3

0
 - (void)viewDidLoad{
 scroll.contentSize=CGSizeMake(320, 400);
 }

 - (void)scrollViewToCenterOfScreen:(UIView *)theView {  
CGFloat viewCenterY = theView.center.y;  
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame]; 
CGFloat availableHeight;

    availableHeight = applicationFrame.size.height - 300; 

CGFloat z = viewCenterY - availableHeight / 2.0;  
if (z < 0) {  
    z = 0;  
 }  
 [scroll setContentOffset:CGPointMake(0, z) animated:YES];  
}

-(void)textViewDidBeginEditing:(UITextView *)textView{
[self scrollViewToCenterOfScreen:scroll];

}

 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range  replacementText:(NSString *)text
 {
if (range.length==0) {
    [scroll setContentOffset:CGPointMake(0, 0) animated:YES];  
        return NO;
  }
 }
于 2012-06-27T05:28:45.167 回答
0

代替

 [scrollViewCustom setContentOffset:CGPointMake(0.0, 0.0) animated:NO];

利用

[scroll scrollRectToVisible:CGRectMake(0,0, 100,100) animated:NO];
于 2012-06-27T05:19:22.667 回答
0

只需两步:

// define the area that is initially visible
 scrollViewCustom.frame = CGRectMake(0, 5, 354, 500);

// then define how much a user can scroll it
[scrollViewCustom setContentSize:CGSizeMake(354, 960)];

In addition,clear the background color of scroll view to show the text. 
scrollViewCustom.backgroundColor = [UIColor clearColor];
于 2012-06-27T05:32:52.093 回答