0

如何分配他们有标签:

self.images = [NSMutableArray arrayWithObjects:
                       @"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg",nil];

每当 UIScrollView 在特定图像处停止时,它都会做一些事情/动作/动画。例如,在显示图像 1 时在左侧绘制一个框,在 UIScrollView 中显示图像 2 时在右侧绘制一个框。谢谢。

这是数组:

- (void)awakeFromNib
{    
    if (self) {

        //set up carousel data
        //wrap YES = infinite loop
        wrap = YES;

        self.images = [NSMutableArray arrayWithObjects:
                       @"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg"nil];
    }

}

这是显示我的图像的位置:

- (UIView *)carousel:(iCarousel *)_carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
    view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[images objectAtIndex:index]]];

    return view;

}
4

4 回答 4

1

我根据我从其他答案的评论中得到的答案来回答(你真的应该编辑你的问题!!!)。

我假设有一个 UIScrollView 处于分页模式,它在滚动停止后在他的全帧上只显示一个图像。如果您只对获取此图像并做某事感兴趣,假设依赖于您之前设置的标签,则滚动视图委托中的代码可能如下所示:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
  int imageTag;
  for(UIView *sv in scrollView.subviews) 
  {
    if(sv.frame.origin.y >= scrollView.contentOffset.y 
       && sv.frame.origin.y <= scrollView.contentOffset.y + scrollView.frame.size.height) 
    {
      imageTag = sv.tag;
      break;
    }
  }
  switch (imageTag) 
  {
      //do something
  }
}
于 2012-05-09T08:00:22.800 回答
0

如果您正在谈论导航下一个要显示的图像。然后在此处查看示例代码

http://developer.apple.com/library/ios/#samplecode/PageControl/Introduction/Intro.html

如果还有其他事情。然后解释什么

于 2012-05-09T07:10:12.850 回答
0

检查图像的 x 坐标怎么样?这似乎是检查正在显示什么图片的合法方式......如果您想要标记,您可以使用索引,或者将指向图像的指针存储在字典中。

于 2012-05-09T07:36:21.290 回答
0

您可以使用以下公式简单地计算 UIScrollView 的偏移量:

NSUInteger currentPage = floor((yourScrollView.contentOffset.y - theHeightOfYourImage/2) / theHeightOfYourImage)+1

这是我的想法,但如果我没记错的话,这将为您提供当前选择的页面。当然,这需要您所有的页面/图像具有相同的高度。

你可以在

- (void) scrollViewDidScroll:(UIScrollView *)scrollView

然后,这将为您提供一个可以使用的索引。

于 2012-05-09T07:54:25.180 回答