如何设置Scrollview的ContentOffset当我滑动图像时,我将其图像偏移量放入iOS中的Scrollview?

时间:2014-11-25 04:42:01

标签: ios objective-c iphone uiscrollview

我是iOS Development的新用户。
我创建了一个包含一个UIImageview和一个UIScrollView的应用。
这里UIScrollview包含我的所有数组图像和图像视图只包含一个图像时,在UIImageview上扫描然后它包含下一个图像从数组中它工作正常但现在我想要当滑动Imageview然后另外,我想在Scrollview中心显示UISCrollview中的哪个图像为此,我设置了ContentOffSet For Scrollview,当我的数组包含更多图像时,它不是我想要的工作。

就像当我的数组包含100个图像时然后我滑动第90个索引图像,然后我的Scrollview ContentOffSet仅显示第89个索引图像,然后不刷我的Scrollview。
我的代码就像这样

    for(int index=0; index < [self.imagesa count]; index++)
    {
        NSDictionary *dict=[self.imagesa objectAtIndex:index];
    NSString *image=[dict valueForKey:@"link”];
    smallImage = [[UIImageView alloc] init];
    [smallImage setTag:index];
    smallImage.bounds = CGRectMake(10, 10, self.scrollView.frame.size.width, self.scrollView.frame.size.width);
    smallImage.frame = CGRectMake(5+xOffset, 0, 50, 50);
    [smallImage sd_setImageWithURL:[NSURL URLWithString:image] placeholderImage:[UIImage imageNamed:@"1.png"]];
        CGSize scrollViewSize=CGSizeMake(self.scrollView.frame.size.width*[self.imagesa count], self.scrollView.frame.size.height);
    [self.scrollView setContentSize:scrollViewSize];
    [self.scrollView addSubview:smallImage];
    xOffset += 60;
}

并向左滑动代码

-(void)slideToLeftWithGestureRecognizer:(UISwipeGestureRecognizer *)gestureRecognizer
{
NSLog(@"swipe left");
NSLog(@"index %d",indexes);
if(indexes < [self.imagesa count]-1)
{
    indexes++;
    NSDictionary *dict=[self.imagesa objectAtIndex:indexes];
    NSString *imagelink=[dict valueForKey:@"link"];
    NSLog(@"imageLink %@",imagelink);
    [self.bigImage sd_setImageWithURL:[NSURL URLWithString:imagelink]placeholderImage:[UIImage imageNamed:@"1.png"]];
    [self.bigScrollview addSubview:self.bigImage];
    [self.scrollView setContentOffset:CGPointMake(60+(indexes*smallImage.frame.size.width), 0) animated:YES];
}

}

我有一个代码可以向左滑动以排列Scrollview ContentOffset,因为我想要

[self.scrollView setContentOffset:CGPointMake((indexes*self.scrollView.frame.size.width/5),0) animated:YES];

它正如我想要的那样工作,但现在我想向右滑动将contentOffset设置为左右滑动请立即向我解决方案仅适用于向右滑动。

1 个答案:

答案 0 :(得分:1)

我得到了两个人的答案

向左滑动

[self.scrollView setContentOffset:CGPointMake((indexes*self.scrollView.frame.size.width/5)-60,0) animated:YES];

并向右滑动

[self.scrollView setContentOffset:CGPointMake((indexes*smallImage.frame.size.width),0) animated:YES];