如何将一个滚动视图图像选择到另一个滚动视图中?
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/,祝你好运!!
【讨论】:
以上是关于如何将一个滚动视图图像选择到另一个滚动视图中?的主要内容,如果未能解决你的问题,请参考以下文章