【发布时间】:2016-12-20 07:50:44
【问题描述】:
我在Viewcontroller A 上有四个图像。单击这些图像Viewcontroller B 具有UIScrollView 具有图像视图的呈现,它显示所有这四个图像....图像1,图像2,图像3,图 4。
我希望当单击图像 2 时,图像 2 作为 Viewcontroller B 上的第一张图像出现,然后是图像 3,然后是图像 4...此外,当用户向左移动时,它也会显示以前的图像,包括图像 1。
我搜索了很多,但找不到这个问题的解决方案Kindly.help
我使用的代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
width = [UIScreen mainScreen].bounds.size.width;
height = [UIScreen mainScreen].bounds.size.height;
_scroller = [[UIScrollView alloc]initWithFrame:
CGRectMake(0,64,width,height)];
_scroller.contentSize=CGSizeMake(pageCount*_scroller.bounds.size.width,_scroller.bounds.size.height);
_scroller.pagingEnabled=YES;
_scroller.showsHorizontalScrollIndicator=YES;
CGRect ViewSize=_scroller.bounds;
NSArray *imgArray = [self.tripDetails valueForKey:@"Flightimageurl"];
for(int i=0;i<[imgArray count];i++)
{
UIImageView *imgView1=[[UIImageView alloc]initWithFrame:ViewSize];
NSString *ImageURL = [imgArray objectAtIndex:i];
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ImageURL]];
imgView1.image=[UIImage imageWithData:imageData];
[_scroller addSubview:imgView1];
[self.view addSubview:_scroller];
ViewSize =CGRectOffset(ViewSize,_scroller.bounds.size.width,0);
}
}
【问题讨论】:
-
利用UICollectionView,使UICollectionView单元格覆盖UICollectionView的边框,设置UICollectionView水平滚动,将图像数组作为UICollectionView数据源传递,最后为了加载用户点击的图像使用collectionView方法viewDidLoad 中的 scrollToItem(at: index) 将 scrollToItem 的动画属性设置为 false :)
-
忘了在 UICollectionView 上启用分页:D
-
但是这将如何解决我的用户点击图像 2 并且在 Viewcontroller B 上加载的第一张图像是图像 2 然后是图像 3、图像 4 的问题?
标签: ios objective-c uiscrollview