gpt4 book ai didi

ios - 使用 iCarousel ios 重用 View

转载 作者:行者123 更新时间:2023-12-01 19:16:23 26 4
gpt4 key购买 nike

我正在用 ICarousel 构建一个应用程序。
轮播中将有大约 30 个项目。
每个项目都是一个带有 UIImageView 显示动画的 View 。

现在我只是提前创建所有 30 个 View ,将它们添加到数组中,并在需要时提供给轮播。

        SBTViewController* iv1 = [[SBTViewController alloc] initWithNibName:@"SBTViewController" bundle:nil];
SBTViewController* iv2 = [[SBTViewController alloc] initWithNibName:@"SBTViewController" bundle:nil];
.....
.....
SBTViewController* iv30 = [[SBTViewController alloc] initWithNibName:@"SBTViewController_iPhone" bundle:nil];


viewsarray = [NSArray arrayWithObjects: iv1,iv2... iv30]

当轮播需要更多 View 时-我只提供数组中的 View

但是,我开始收到 MemoryWarnings。
尝试使用“reuseView”选项,但它根本不起作用,或者我误解了一些东西。
每次调用以下内容:
  - (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{

}

我只是试图将“ View ”更改为我的屏幕外 View 之一。但这似乎不起作用。轮播显示空白屏幕。

怎么了 ?

谢谢

最佳答案

ReusingView 旨在通过回收 View 来减少分配/释放 View 的需要。但是因为您将所有 View 存储在一个数组中,所以它对您没有帮助,因为它们都是一次创建的,并且无论如何都不会发布。

从根本上说,问题在于您试图一次将太多图像加载到内存中( View 数 x 每个 View 的动画帧数)。

您需要找到一种动态加载帧的方法。试试我的 GLView 库 (https://github.com/nicklockwood/GLView),其中包含使用可以实时加载的 PVR 图像播放动画的说明。 GLView 库包含一个 GLImageView 类,它的工作方式与 UIImageView 类似,但您可以指定要播放的图像文件名数组,而不必提前加载所有图像。

关于ios - 使用 iCarousel ios 重用 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12991335/

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