【问题标题】:Changing (updating) self.title in navigationBar on scrollViewDidScroll在 scrollViewDidScroll 上的 navigationBar 中更改(更新)self.title
【发布时间】:2012-07-16 13:15:03
【问题描述】:

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

【问题讨论】:

  • 您是否使用包含许多图像的滚动视图?

标签: iphone objective-c ios ios5 uiscrollview


【解决方案1】:

结束滚动后滚动ScrollView

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

方法是调用。所以你可以在这个方法中给出标题。首先做一个你所有的数组 图片的标题。然后,如果您的图像宽度为 320,则使用此:-

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

【讨论】:

  • 这很好用,Kenpachi 的回答也很到位,但问题是导航栏中的标题不会用新标题自行更新。有没有办法重新加载导航栏?
  • 我认为它应该自我更新......它一直在点击按钮......我没有尝试使用 scrollView 的委托方法......但它应该工作......
  • 嘿,它的工作和导航栏标题每次都在变化,无需调用任何东西.....请再次检查您的代码:-)
  • 我认为我的问题可能是我从 UITableView 的单元格中推送 UIScrollView,所以这不是同一个导航控制器...我必须以某种方式解决这个问题:/ 无论如何谢谢为您提供帮助。
  • 欢迎...祝一切顺利:-)
【解决方案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
}

【讨论】:

    【解决方案3】:

    如果您使用的是分页 UIScrollView,最好的方法是在调用的委托方法中对标题进行操作

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    

    【讨论】:

      【解决方案4】:

      你应该使用UIScrollViewDelegate协议的方法,比如-scrollViewDidScroll:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多