2011-02-23 18 views
17

Sayfalama etkinleştirilmiş yatay kaydırma UIScrollView olmasını isterim. Bu kaydırma görünümündeki sayfalar farklı genişliklere sahiptir, bu nedenle kaydırma mesafesi sayfadan sayfaya farklılık gösterir.Farklı sayfa genişlikleri ile UIScrollView çağırma

gol .: ör zaman içinde farklı noktalarda için seçici yapmak için Buraya

| Now | Yesterday evening | Last Week | Last Month | 
    ^   ^   ^   ^   <- stopps here 

| Now || Yesterday evening | daha küçük bir genişliğe sahiptir. Bu değerler arasında gezinirken, scrollview, ilgili değerin ortasında durmalıdır.

Bu mümkün mü?

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ 

} 

kullanıcı durağı üzerinde parmak taşımak için çağrılan bir yöntem vardır:

+0

Bu soruya cevabımla bakın: http://stackoverflow.com/a/10993426/60488 –

cevap

12

o sana UIScrollViewDelegate protokol yöntemi uygulamalıdır tahmin

... mutlaka mümkün, ama o kadar otomatik var

yourScrollView.contentOffset 

ve ardından pa hangi birini kontrol edin: Eğer içinde kontrol edebilirsiniz scrollview, içeriğinizi koordinatı ge.x (bunları oluştururken bir dizide kaydettirin veya scrollView'e eklenen tüm görünümünüzün kaynağını kontrol edin) buna yakındır, ardından sayfanızın offSet (animasyonlu) çağrısına gidin:

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 
+0

Teşekkür ederim meronix, tam da aradığım şey buydu! Bazı ek ipuçları: (void) scrollViewDidEndDecelerating - ': (UIScrollView *) scrollView' – liefersfl

+3

için - -' UIScrollView.pagingEnabled' NO' 'üzere ayarlanmış olması gerekir Ayrıca UIScrollViewDelegate protokol yöntemini uygulamak zorunda scrollViewWillBeginDecelerating: (UIScrollView *) scrollView' yöntemini uygulayarak daha iyi sonuç aldım – darune

İlgili konular