2012-06-27 2 views
1

У меня есть прокрутка с некоторым контентом. После загрузки содержимого я использую следующий код для перемещения в верхнюю часть прокрутки.относительно прокрутки внутри UIScrollView

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

Это работает. За одним исключением:

У меня есть UITextView. Если я добавлю в него какой-то текст, тогда прокрутка никогда не вернется к вершине с помощью этого кода. Мне нужно вручную прокрутить вверх.

Я даже попытался поместить тот же код после добавления текста в UITextView.

Может ли кто-нибудь любезно помочь? Благодарю.

NB: Так, Heres решение:

В основном UITextView происходит от UIScrollView и как таковой, когда есть какой-то текст есть, он пытается прокрутить, чтобы сделать текст видимым. Я заменил UITextView на UILabel, и он работает как шарм!

ответ

0

Вместо

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

Использование

[scroll scrollRectToVisible:CGRectMake(0,0, 100,100) animated:NO]; 
+0

Неа, не работал :( – Ahsan

+0

, что произошло, пожалуйста, опишите –

+0

его же , С данным кодом, он делает nt прокрутите вверх, я должен сделать это вручную. – Ahsan

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; 
    } 
} 
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]; 
+0

Извините за путаницу, я могу переместить его, НО вручную, а не с данным кодом. – Ahsan

Смежные вопросы