如何在另一个Scrollview中选择一个Scrollview图像?

时间:2014-11-14 09:58:32

标签: ios objective-c uiscrollview

我是iOS开发中的新手。在我的应用程序中包含两个Scrollview一个Scrollview很大,一个是小Scrollview这里我的Scrollview包含相同的图像,但一个包含小和一个包含大像我的代码

对于Big 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,宽度= 300宽度= 270 和小Scrollview

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,宽度= 300,高度= 113

这里我想要的是当我滚动我的大滚动视图然后我的小滚动视图还滚动了我在我的大滚动视图中选择了哪个图像。如何可能像在Android中使用分页视图查看寻呼机。如果可能的话请给我解决方案。

2 个答案:

答案 0 :(得分:0)

是的,分页也可以在UIScrollView iOS中使用。

 @property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled 
如果你创建了界面,你可以在nib文件中创建scrollview的实例时设置上面的属性

^^^。浏览此文档以获取附加信息https://developer.apple.com/library/ios/documentation/uikit/reference/uiscrollview_class/index.html#//apple_ref/occ/instp/UIScrollView/pagingEnabled

现在&#34;您想要同时滚动较小的图像视图更大的滚动视图&#34;
是的,你也可能需要实现一些滚动视图的委托方法,如

 - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView

 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

借助来自委托方法的scrollview的contentoffset,在这里实现其他scrollview的滚动逻辑。

 @property(nonatomic) CGPoint contentOffset 

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

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

答案 1 :(得分:0)

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