gpt4 book ai didi

ios - iCarousel - viewForItemAtIndex 在启动时加载所有索引

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

我正在使用 iCarousel 来显示信息。每个索引(总共 7 个)都有一个独特的图像,上面有一个标签。每个都使用 if 语句设置 if (index == 0){...} 等。

但是,当我加载页面(和轮播)时,最初只加载前三个图像。系统使用延迟加载来等待旋转木马转动以抓取下一张图像。我可以通过 print 语句证明索引确实增加了 2,一直增加到 6 [0..6]。但出于某种原因,我的轮播图片在第三张之后重复出现。

示例:星期一、星期二、星期三、星期一、星期二、星期三、星期一应该是:周一、周二、周三、周四、周五、周六、周日

有什么办法解决这个问题吗?

更多测试对于索引 0-2, View 为 nil,但对于索引 3+, View 不为 nil,并且跳过了 if。知道如何解决这个问题吗?

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view{

UILabel *label = nil;
NSLog(@"INDEX is %i", index);
//create new view if no view is available for recycling
if (view == nil)
{
view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200.0, 200.0)];
//view = [[UIImageView alloc] init];
((UIImageView *)view).image = [UIImage imageNamed:_locationDetailModel[2]];
view.contentMode = UIViewContentModeCenter;
label = [[UILabel alloc] initWithFrame:view.bounds];
label.minimumScaleFactor = 8./label.font.pointSize;
label.adjustsFontSizeToFitWidth = YES;
[label setFont:[UIFont boldSystemFontOfSize:12]];
...
if (index == 0){
label.backgroundColor = [UIColor colorWithPatternImage:[self resizeForCarousel:[UIImage imageNamed:@"Monday_Hours.jpg"]]];
}
} else if (index == 1) {
label.backgroundColor = [UIColor colorWithPatternImage:[self resizeForCarousel:[UIImage imageNamed:@"Tuesday_Hours.jpg"]]];
} else if (index == 2){
label.backgroundColor = [UIColor colorWithPatternImage:[self resizeForCarousel:[UIImage imageNamed:@"Wednesday_Hours.jpg"]]];
} else if (index == 3){
label.backgroundColor = [UIColor colorWithPatternImage:[self resizeForCarousel:[UIImage imageNamed:@"Thursday_Hours.jpg"]]];
} else if (index == 4){
label.backgroundColor = [UIColor colorWithPatternImage:[self resizeForCarousel:[UIImage imageNamed:@"Friday_Hours.jpg"]]];
} else if (index == 5){
label.backgroundColor = [UIColor colorWithPatternImage:[self resizeForCarousel:[UIImage imageNamed:@"Saturday_Hours.jpg"]]];
} else if (index == 6){
label.backgroundColor = [UIColor colorWithPatternImage:[self resizeForCarousel:[UIImage imageNamed:@"Sunday_Hours.jpg"]]];
}
label.textAlignment = NSTextAlignmentCenter;
//label.textAlignment = UITextAlignmentCenter;
label.font = [label.font fontWithSize:50];
label.tag = 1;
[view addSubview:label];
}
else
{
label = (UILabel *)[view viewWithTag:1];
}
return view;

最佳答案

关键是去掉if(view == nil)

前3个索引点是有效的,但之后被初始化,不再为nil

关于ios - iCarousel - viewForItemAtIndex 在启动时加载所有索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24771931/

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