1

いくつかのコンテンツを含むスクロール ビューがあります。コンテンツを読み込んだ後、次のコードを使用してスクロール ビューの一番上に移動しています。

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

できます。1 つの例外を除いて:

私は持っていUITextViewます。テキストを追加すると、このコードでスクロール ビューが先頭に戻ることはありません。手動で一番上までスクロールする必要があります。

にテキストを追加した後、同じコードを入れようとしましたUITextView

誰でも親切に手伝ってもらえますか?ありがとう。

NB:したがって、解決策は次のとおりです。

基本的にUITextViewはから派生しUIScrollViewているため、そこにテキストがある場合は常にスクロールしてテキストを表示しようとします。私はに置き換えましUITextViewたがUILabel、それは魅力のように機能します!

4

3 に答える 3

0

たった2つのステップ:

// 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 に答える
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
 - (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 に答える