我想为滚动视图中的每个图像添加背景图像bgImageView.image = [UIImage imageNamed:@"frame_trans"];
,但是滚动视图会扩展而不是在每个图像后面添加图像,我做错了什么?
编辑:感谢ColdLogic增加了工作代码。
这是我的旧滚动视图
我想加一个回形针
但是当前的代码执行此操作。
CODE:
//init scrollview in location on screen
//scrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(30, 100, 278, 290)];
//scrollview.backgroundColor = [UIColor redColor];
//pass image filenames
NSMutableArray *fileNames = Info.imageFiles; //[[[NSMutableArray alloc] init] autorelease];
//setup the array of uiimageviews
NSMutableArray *imgArray = [[NSMutableArray alloc] init];
NSMutableArray *bgImgArray = [[NSMutableArray alloc] init];
//loop through the array imgNames to add file names to imgArray
for (NSString *imageName in fileNames) {
NSString *tempIMGName = [NSString stringWithFormat:@"data/%i/%@",Info.ID, imageName];
NSLog(@"tempIMG %@",tempIMGName);
UIImageView *imageView = [[UIImageView alloc] init];
UIImageView *bgImageView = [[UIImageView alloc] init];;
imageView.image = [UIImage imageNamed:tempIMGName];
bgImageView.image = [UIImage imageNamed:@"frame_trans"];
imageView.contentMode = UIViewContentModeScaleAspectFit;
CGAffineTransform newTransform = CGAffineTransformMakeRotation((CGFloat)(-3 * M_PI / 180.0));
imageView.layer.affineTransform = newTransform;//CGAffineTransformMakeRotation(degreesToRadians(10));
[imgArray addObject:imageView];
[bgImgArray addObject:bgImageView];
[imageView release];
[bgImageView release];
}
CGSize pageSize = scrollview.frame.size;
NSUInteger page = 0;
for (UIView *bgViewForScrollView in bgImgArray) {
[scrollview addSubview:bgViewForScrollView];
bgViewForScrollView.frame = CGRectMake(pageSize.width * page++ +10, 0, pageSize.width -20 , pageSize.height);
// making use of the scrollView's frame size (pageSize) so we need to;
// +10 to left offset of image pos (1/2 the gap)
// -20 for UIImageView's width (to leave 10 gap at left and right)
}
NSUInteger page1 = 0;
for (UIView *viewForScrollView in imgArray) {
[scrollview addSubview:viewForScrollView];
viewForScrollView.frame = CGRectMake(pageSize.width * page1++ +10, 0, pageSize.width -20 , pageSize.height);
// making use of the scrollView's frame size (pageSize) so we need to;
// +10 to left offset of image pos (1/2 the gap)
// -20 for UIImageView's width (to leave 10 gap at left and right)
}
//add scroll view to view
[self.view addSubview:scrollview];
[self.view bringSubviewToFront:scrollview];
scrollview.contentSize = CGSizeMake(pageSize.width * [imgArray count], pageSize.height);
//scrollview.contentSize = CGSizeMake(320 *viewcount + 20, 290 );
scrollview.showsHorizontalScrollIndicator =NO;
[scrollview setPagingEnabled:YES];
scrollview.delegate =self;
答案 0 :(得分:2)
问题是,在为背景视图创建帧时使用page++
,然后在开始为图像创建帧时不重置它。页面的值将为3进入imgArray的for循环,使其置于第4个索引。
for (UIView *bgViewForScrollView in bgImgArray) {
//code
}
//ADD THIS LINE OF CODE
page = 0;
for (UIView *viewForScrollView in imgArray) {
//Code
}
答案 1 :(得分:1)
您应该将背景编号图像添加到滚动视图中,并为每个图像添加回形针图像的子视图。
[bgImageView addSubview:imageView];