2014-03-29 155 views
0

我工作的滾動視圖,我希望它與分頁啓用,但是當我嘗試設置自定義寬度的內容我不能,我需要某人的幫助,謝謝!如何設置ScrollView內容的寬度?

繼承人什麼我試着:

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { 

    int PageNum = (int)(scrollView.contentOffset.x/140); 
    targetContentOffset->x = PageNum * (int)(targetContentOffset->x/PageNum); 

} 

scrollViewDidScroll:我添加的NSLog及其印刷正確的當前頁面,什麼行不通是尋呼寬度自定義:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 

    int PageNum = (int)(scrollView.contentOffset.x/140); 
    NSLog(@"%d", PageNum); 

} 

希望有人可以幫助我,謝謝!

回答

0

您不必執行scrollViewWillEndDragging:withVelocity:targetContentOffset:方法來啓用UIScrollView中的paging。要做到這一點,你只需要:

  • 設置爲YES您的滾動型pagingEnabled財產。有關此屬性的文檔說明:如果此屬性的值爲YES,則當用戶滾動時,滾動視圖停止滾動視圖邊界的倍數。
  • 添加您的子視圖(頁面)到滾動視圖。它們的width必須等於scrollview的寬度,才能檢索水平頁面滾動視圖。
  • 設置您的滾動視圖的contentSize屬性。

所以,你的代碼應該是這樣的:

[scrollView setPagingEnabled:YES]; 
NSInteger numberOfPages = 100; 

CGFloat pageWidth = scrollView.bounds.size.width; 
CGFloat pageHeight = scrollView.bounds.size.height; // can be something else 

for(NSInteger i = 0; i < numberOfPages; i++) 
{ 
    UIView * view = [[UIView alloc] initWithFrame:CGRectMake(i * pageWidth, 0, pageWidth, pageHeight)]; 
    // do somethings with the page view 
    [scrollView addSubview:view]; 
} 

[scrollView setContentSize:CGSizeMake(numberOfPages * pageWidth, scrollView.bounds.size.height)]; 
0

坦率地說,我並不真正瞭解你的代碼以及你在做什麼。 這個答案甚至可能與您的問題沒有關係,但無論如何它可能會有所幫助。

targetContentOffset->x = PageNum * (int)(targetContentOffset->x/PageNum); 

是一個相當相當於

targetContentOffset->x = (int)(targetContentOffset->x); 

這似乎並沒有做太多,但一些四捨五入。如果你這樣做的四捨五入的副作用,然後忽略我的答案。

+0

我分scrollView.contentOffset.x爲140,因爲這就是我想要的寬度(如果那是你不明白),我想你是什麼告訴我和它一樣:S,謝謝 –

+0

當然它是一樣的。你在做x = x。你對這項任務有什麼期望?再次,我不確定這是否與您的問題有關。在最好的情況下,它只是一個CPU使用率的緩衝區。 –

相關問題