2011-01-13 13 views
1

Ich füge dynamisch einige Ansichten in Scrollview und die Erhöhung der Content von Scroll auch, aber ich will die Scroll am unteren Rand seiner Höhe blättern.die Scrollview Scrollen am unteren programmatisch - iphone

scrollRectToVisible ist nicht hilfreich für mich. Es scrollt nur zur sichtbaren Ansicht meines iphone Bildschirmes, aber ich möchte den unteren Rand der Inhaltsgröße von scrollview erreichen.

Kann mir jemand einen Beispielcode geben?

Danke,
Naveed Butt

Antwort

3

Verwendung so etwas wie dieses stattdessen:

CGPoint bottomOffset = CGPointMake(0, [yourScrollView contentSize].height); 
[yourScrollView setContentOffset:bottomOffset animated:YES]; 

Wenn Sie es animiert nicht wollen, nur YES-NO ändern.

+1

groß, Dank sehr viel. –

5

I modifizierte @ jer-Lösung ein wenig:

if([yourScrollView contentSize].height > yourScrollView.frame.size.height) 
{ 
    CGPoint bottomOffset = CGPointMake(0, [yourScrollView contentSize].height - yourScrollView.frame.size.height); 
    [yourScrollView setContentOffset:bottomOffset animated:YES]; 
} 

Dadurch wird der Inhalt auf dem Boden des UIScrollView bewegen, aber nur, wenn es getan werden muss (sonst bekommt man ein seltsam nach oben/unten springen Wirkung)

Auch habe ich gemerkt, wenn Sie nicht die Höhe der scrollview selbst von der Höhe des Inhalts scrollen den Inhalt nach oben, wo sichtbar ist.

+1

Es funktioniert gut lol :-) – svmrajesh

+0

es funktioniert perfekt für mich ... :) –

0
CGFloat yOffset = scrollView.contentOffset.y; 

CGFloat height = scrollView.frame.size.height; 

CGFloat contentHeight = scrollView.contentSize.height; 

CGFloat distance = (contentHeight - height) - yOffset; 

if(distance < 0) 
{ 
    return ; 
} 

CGPoint offset = scrollView.contentOffset; 

offset.y += distance; 

[scrollView setContentOffset:offset animated:YES]; 
0

Im Fall, wenn Sie die Swift-Version wollen:

scrollView.setContentOffset(CGPointMake(0, max(scrollView.contentSize.height - scrollView.bounds.size.height, 0)), animated: true) 

hoffe, das hilft!

0

Dies ist zuverlässiger

CGSize contentSize = scrollview.contentSize; 
[scrollview scrollRectToVisible: CGRectMake(0.0, 
              contentSize.height - 1.0, 
              contentSize.width, 
              1.0) 
         animated: YES]; 
Verwandte Themen