2012-07-16 13 views
0

所以我想要做的就是編寫一個簡單的圖庫應用程序 - 詳細視圖的行爲非常像Apple提供的PhotoScroller,它們在developer.apple上的示例代碼部分.com,即它允許用戶在所有圖像上滑動。我想要做的是更新用戶滑動的標題屬性,換句話說,如果用戶更改了她正在查看的圖像,則self.title屬性應將其自身更新爲該照片的標題。我知道這是可能的,因爲Apple自己的Photo應用程序能夠顯示當前索引(「x」中的1)。如何才能做到這一點?我非常感謝任何建議,並提前致謝。更改(更新)scrollBar上的navigationBar中的self.title

+0

您是否使用包含許多圖像的滾動視圖? – Zaraki 2012-07-16 13:19:49

回答

2

當您滾動ScrollView結束滾動

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 

方法後調用。所以你可以在這個方法裏給這個標題。首先製作一張你的全部 圖片的標題。然後,如果您的圖片寬度爲320,則使用以下內容: -

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
    { 
    int index = scrollView.contentOffset.x/320; 
    self.title = [titleArray objectAtIndex:index]; 
    } 
+0

這個效果很好,Kenpachi的答案也是現貨,但問題在於navigationBar中的標題不會使用新標題進行更新。有沒有辦法重新加載該導航欄? – user1433391 2012-07-16 14:24:51

+0

我認爲它應該更新自己....它一直在按鈕的點擊工作...我沒有嘗試與scrollView的委託方法...但它應該工作.... – TheTiger 2012-07-16 14:38:37

+0

嘿它的工作和navigationBar標題是每次更改,無需調用任何.....請再次檢查您的代碼:-) – TheTiger 2012-07-16 14:44:46

1

如果您使用的是分頁的UIScrollView,最好的辦法是做標題的操縱稱爲委託方法

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
0

,您應該使用UIScrollViewDelegate協議的方法,如-scrollViewDidScroll:

2

如果你是把圖像滾動視圖,則此方法會給你的頁碼您目前在:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    NSInteger pageNum = (int)(scrollView.contentOffset.x/scrollView.frame.size.width); 
    NSLog(@"page no is:%d",pageNum); 

    [self updateTitleForIndex: pageNum]; 
} 

- (void)updateTitleForIndex:(NSInteger) pageNum 
{ 
    //set title using your page number 
    //also call this method initially for setting title 
} 
相關問題