ios - 如何在 iOS 的第二个 ScrollView 中显示第一个 ScrollView 图像?

标签 ios iphone uiscrollview

我是 iOS 开发的新手,我制作了一个包含两个 Scrollview 的应用程序,一个是大尺寸,第二个是小尺寸,显示在我的图像中,两者都包含相同的图像,但第一个是大尺寸,第二个是小尺寸尺寸。在这里我想像当我从我的第二个 ScrollView 中选择任何图像时意味着小 ScrollView 然后该图像直接显示在大 ScrollView 中就像 iOS 中的 ViewPager 或 SegmentedControll 如何可能如果可能那么请在这里给我解决方案Scrollview 的图像是。

enter image description here

在这里我想要当我选择 From Bottom Scrollview 然后我想在 Upper Scrollview 中显示该图像并且这里两个 Scrollview 都包含图像数组并且两者都是相同的。

这里是在scrollview中设置imageview的代码

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.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 setTag:1];
    [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:bigImage];
    self.zoomScroll.clipsToBounds=YES;
    [self.zoomScroll addSubview:[self.objectarray objectAtIndex:index]];
}

这里 bigimage 是 imageview,zoomScroll 是 Scrollview,第二个代码表示 Small Scrollview 相同,只是 imageview 和 scrollview 的大小不同。

这里选择小图片代码,如

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch * touch = [[event allTouches] anyObject];
for(int index=0;index<[self.imageArray count];index++)
{
    UIImageView *imgView = [self.imageArray objectAtIndex:index];
    NSLog(@"x=%f,y=%f,width =%f,height=%f",imgView.frame.origin.x,imgView.frame.origin.y,imgView.frame.size.width,imgView.frame.size.height);
    NSLog(@"x= %f,y=%f",[touch locationInView:self.view].x,[touch locationInView:self.view].y) ;
    if(CGRectContainsPoint([imgView frame], [touch locationInView:self.scrollView]))
    {
        [self ShowDetailView:imgView];
        break;
    }
   }
 }

和ShowDetailView方法代码是

-(void)ShowDetailView:(UIImageView *)imgView
{
 bigImage.image = imgView.image;
 [self.zoomScroll addSubview:bigImage];
}

而且这个方法也在我的不同类文件中,在这里我导入了那个类。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.nextResponder touchesBegan:touches withEvent:event];
}

最佳答案

在您的小 ScrollView 图像中确定。为所有图像设置标签。

 smallimage.tag = index;

在这个方法中

 -(void)ShowDetailView:(UIImageView *)imgView
 {
         [self.zoomScroll setContentOffset:CGPointMake(imgView.tag * self.zoomScroll.frame.size.width, 0) animated:YES];
 } 

关于ios - 如何在 iOS 的第二个 ScrollView 中显示第一个 ScrollView 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880502/

相关文章:

iphone - 如何在使用SDWebimage显示之前先下载Cache中的网页图片?

html - iPhone 6/6 Plus 裁掉 100% 宽度的内容

ios - 我的 UIScrollView 辅助类中的泄漏

ios - 将数据输入到不同类中的不同结构

ios - KIF 无法点击 UITableViewCell 中的 UIButton 如果它是它的 UITableView 的唯一一个

ios - 如何在不连接到真正的蓝牙设备的情况下创建 `EAAccessory` 对象?

ios - Xcode 将旧数据文件放在包中,而不是它的新版本

ios - 当我想运行自己的应用程序 iOS9 时无法在 iPhone 上验证应用程序

javascript - 用钛金属打造三 Angular 形视觉效果

ios - 触摸 UIScrollView 内的 UITextField 会阻止滚动