如何将一个滚动视图图像选择到另一个滚动视图中?

Posted

技术标签:

【中文标题】如何将一个滚动视图图像选择到另一个滚动视图中?【英文标题】:How to select One Scrollview Image into another Scrollview? 【发布时间】:2014-11-14 09:58:32 【问题描述】:

我是 ios Development 的新手。在我的应用程序中包含两个 Scrollview 一个 Scrollview 大,一个是小 Scrollview 这里我的 Scrollview 包含相同的图像,但一个包含小,一个包含大,就像我的代码一样

对于大滚动视图。

for(int index=0; index < [self.imagesa count]; index++)

    NSDictionary *dict=[self.imagesa objectAtIndex:index];
    NSString *image=[dict valueForKey:@"link"];
    bigImage=[[UIImageView alloc]init];
    bigImage.userInteractionEnabled=TRUE;
    bigImage.tag=123;
    bigImage.tag=index;
    bigImage.bounds=CGRectMake(0, 0, self.zoomScroll.frame.size.width, self.zoomScroll.frame.size.height);
    bigImage.frame=CGRectMake(index * self.zoomScroll.frame.size.width, 0, self.zoomScroll.frame.size.width, self.zoomScroll.frame.size.height);
    [bigImage setMultipleTouchEnabled:YES];
    [bigImage sd_setImageWithURL:[NSURL URLWithString:image] placeholderImage:[UIImage imageNamed:@"1.png"]];
    [bigImage setUserInteractionEnabled:TRUE];
    [self.objectarray insertObject:bigImage atIndex:index];
    CGSize scrollViewSize=CGSizeMake(self.zoomScroll.frame.size.width*[self.objectarray count], self.zoomScroll.frame.size.height);
    [self.zoomScroll setContentSize:scrollViewSize];
    [self.zoomScroll addSubview:[self.objectarray objectAtIndex:index]];
    self.zoomScroll.scrollEnabled=YES;
    self.zoomScroll.clipsToBounds=YES;


这里 self.zoomScroll 是我的 BigScrollview 并且是 Width=300 width=270 对于小滚动视图

for(int index=0; index < [self.imagesa count]; index++)

    NSDictionary *dict=[self.imagesa objectAtIndex:index];
    NSString *image=[dict valueForKey:@"link"];
    UIImageView *img = [[UIImageView alloc] init];
    img.tag=index;
    img.bounds = CGRectMake(10, 10, self.scrollView.frame.size.width, self.scrollView.frame.size.width);
    img.frame = CGRectMake(5+xOffset, 0, 50, 50);
    NSLog(@"image: %@",[self.imagesa objectAtIndex:index]);
    [img sd_setImageWithURL:[NSURL URLWithString:image] placeholderImage:[UIImage imageNamed:@"1.png"]];
    [self.imageArray insertObject:img atIndex:index];
    self.scrollView.contentSize = CGSizeMake(scrollWidth+xOffset,110);
    CALayer *borderLayer = [CALayer layer];
    CGRect borderFrame = CGRectMake(10, 10, (img.frame.size.width), (img.frame.size.height));
    [borderLayer setBackgroundColor:[[UIColor clearColor] CGColor]];
    [borderLayer setFrame:borderFrame];
    [borderLayer setCornerRadius:kCornerRadius];
    [borderLayer setBorderWidth:kBoarderWidth];
    [borderLayer setBorderColor:[[UIColor redColor] CGColor]];
    [img.layer addSublayer:borderLayer];
    [self.scrollView addSubview:img];
    [self.scrollView addSubview:[self.imageArray objectAtIndex:index]];
    NSLog(@"New Array %@",self.imageArray);
    xOffset += 60;

self.scrollView 是 Small Scrollview 并且是 Width=300 和 Height=113

在这里我想要当我滚动我的大滚动视图时,我的小滚动视图也滚动我在我的大滚动视图中选择的图像。它是如何可能的,就像在 android Give View Pager With Paging View 中一样。如果可能,请给我解决方案。

【问题讨论】:

【参考方案1】:

是的,UIScrollView iOS 也提供分页功能。

 @property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled 

^^^ 如果您创建了界面,则可以在 nib 文件中创建滚动视图实例时设置上述属性。浏览此文档以获取更多信息https://developer.apple.com/library/ios/documentation/uikit/reference/uiscrollview_class/index.html#//apple_ref/occ/instp/UIScrollView/pagingEnabled。

现在“你想同时滚动更小的图像视图更大的滚动视图” 是的,您也可能需要实现一些滚动视图的委托方法,例如,

 - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView

 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

借助委托方法的滚动视图的 contentoffset 在此处实现其他滚动视图的滚动逻辑。

 @property(nonatomic) CGPoint contentOffset 

使用内容偏移属性,您可以检索滚动的内容视图的当前位置。将相同的偏移量应用于其他滚动视图。

还将标记值设置为滚动视图内的图像视图。使用这些标签,您也可以在其他滚动视图上设置选定的图像。

【讨论】:

请给我一个例子。我一次无法理解这种方法。 对不起,我不关心示例代码和示例。我知道我向您解释清楚的实施逻辑。阅读并按照步骤操作。【参考方案2】:

您可以使用 icarousel for IOS 实现相同的功能这里是如何使用 icarousel 的教程。 http://www.theappguruz.com/tutorial/how-to-use-icarousel-view-controller-in-ios/,祝你好运!!

【讨论】:

以上是关于如何将一个滚动视图图像选择到另一个滚动视图中?的主要内容,如果未能解决你的问题,请参考以下文章

将图像从滚动视图拖动到视图而不会影响其位置

iOS:如何将内容从滚动视图复制到另一个滚动视图

自动滚动:如何在滚动视图中自动滚动图像

如何将触摸事件从一个视图传递到另一个视图

如何在滚动视图中填充图像以填充屏幕?

滚动视图和图像拖动问题