gpt4 book ai didi

iphone - 如何在 ScrollView 图像中添加背景图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:17:49 26 4
gpt4 key购买 nike

我想为 ScrollView 中的每个图像添加背景图像 bgImageView.image = [UIImage imageNamed:@"frame_trans"];,但是 ScrollView 展开而不是添加图像每张图片背后,我做错了什么?

编辑:添加了工作代码,感谢 ColdLogic。

这是我的旧 ScrollView

enter image description here

我想加一个回形针

enter image description here

但是当前的代码是这样做的。

enter image description here

代码:

//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;

最佳答案

问题是您在为背景 View 创建框架时使用了 page++,然后在开始为图像创建框架时没有重置它。进入 imgArray 的 for 循环时,页面的值为 3,使其位于第 4 个索引处。

for (UIView *bgViewForScrollView in bgImgArray) {
//code
}

//ADD THIS LINE OF CODE
page = 0;

for (UIView *viewForScrollView in imgArray) {
//Code
}

关于iphone - 如何在 ScrollView 图像中添加背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8359253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com