菜鸟教程小白 发表于 2022-12-12 23:49:51

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


                                            <p><p>我正在使用 iCarousel 来显示信息。每个索引(共 7 个)都有一个唯一的图像,上面有一个标签。每个都用 if 语句设置 <code>if (index == 0){...}</code> etc.</p>

<p>但是,当我加载页面(和轮播)时,最初只加载前三个图像。系统使用延迟加载等到轮播转来抓取下一张图片。我可以通过打印语句证明索引确实增加超过 2 一直到 6 。但由于某种原因,我的轮播图片在第三张之后重复出现。</p>

<p>示例:周一、周二、周三、周一、周二、周三、周一
应该是:周一、周二、周三、周四、周五、周六、周日</p>

<p>任何想法如何解决这个问题?</p>

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

<pre><code>- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view{

UILabel *label = nil;
NSLog(@&#34;INDEX is %i&#34;, index);
//create new view if no view is available for recycling
if (view == nil)
{
    view = [ initWithFrame:CGRectMake(0, 0, 200.0, 200.0)];
    //view = [ init];
    ((UIImageView *)view).image = ];
    view.contentMode = UIViewContentModeCenter;
    label = [ initWithFrame:view.bounds];
    label.minimumScaleFactor = 8./label.font.pointSize;
    label.adjustsFontSizeToFitWidth = YES;
    ];
    ...
    if (index == 0){
      label.backgroundColor = ]];
      }
    } else if (index == 1) {
      label.backgroundColor = ]];
    } else if (index == 2){
      label.backgroundColor = ]];
    } else if (index == 3){
      label.backgroundColor = ]];
    } else if (index == 4){
      label.backgroundColor = ]];
    } else if (index == 5){
      label.backgroundColor = ]];
    } else if (index == 6){
      label.backgroundColor = ]];
    }
    label.textAlignment = NSTextAlignmentCenter;
    //label.textAlignment = UITextAlignmentCenter;
    label.font = ;
    label.tag = 1;
    ;
}
else
{
    label = (UILabel *);
}
return view;
</code></pre>

<p>}</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>关键是去掉<code>if(view == nil)</code></p>

<p>前 3 个索引点是有效的,但之后它们被启动并且不再为 nil</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iCarousel - viewForItemAtIndex 在启动时加载所有索引,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24771931/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24771931/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iCarousel - viewForItemAtIndex 在启动时加载所有索引