在scrollViewDidScroll上的navigationBar中更改(更新)self.title

时间:2012-07-16 13:15:03

标签: iphone objective-c ios ios5 uiscrollview

所以我要做的就是编写一个简单的图库应用程序 - 详细视图的行为非常类似Apple在developer.apple.com上的示例代码部分提供的PhotoScroller,也就是说它允许用户滑动横跨所有图像。我想要做的是更新用户滑动的title属性,换句话说,如果用户更改了她正在查看的图像,self.title属性应该更新为该照片的标题。我知道这是可能的,因为Apple自己的Photo应用程序能够显示当前索引(“x中的1”)。如何才能做到这一点?我真的很感激任何建议,并提前感谢你。

4 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:2)

结束滚动后滚动ScrollView

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

方法是调用。所以你可以在这个方法中给出标题。首先制作一个你所有人的阵列 图片的标题。然后,如果图像的宽度为320,则使用: -

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

答案 2 :(得分:1)

如果您正在使用分页的UIScrollView,最好的方法是在名为

的委托方法中操作标题
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

答案 3 :(得分:0)

您应该使用UIScrollViewDelegate协议的方法,例如-scrollViewDidScroll: