gpt4 book ai didi

iphone - 消除过渡期间实现 UIScrollView 相册时出现的故障

转载 作者:行者123 更新时间:2023-11-29 04:25:00 26 4
gpt4 key购买 nike

已经实现了一个 UIScrollView 相册,其中 +2 和 -2 位置的 subview 在调用 scrollViewDidEndDragging 时生成,但添加 subview 是一项昂贵的操作,因此滑动不是很顺利。拖动结束时屏幕会有点卡住。我什至尝试过使用 NSTimerperformSelector 进行延迟调用,但如果用户快速浏览所有图像,则所有延迟调用都会立即调用,有时会导致应用程序崩溃.

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
flyNumber = (NSInteger)(imageScrollView.contentOffset.x/imageScrollView.frame.size.width);
[self createM2P2SubView];

//[self performSelector:@selector(createM2P2SubView) withObject:nil afterDelay:0.1];
//[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(createM2P2SubView) userInfo:nil repeats:NO];

NSLog(@"End dragging ...... %d",flyNumber);
}

请提供消除该故障的解决方案。

最佳答案

创建 View 是一项昂贵的操作,但这本质上就是 TableView 的作用。当新单元格出现在屏幕上时,它会动态创建 View ,并且它会重用这些 View ,因为创建它们的成本很高。

尝试使用时间分析器和动画分析器分析您的代码以查找瓶颈。

尝试重用在 +2/-2 偏移处插入的 View 以加快速度。

还有一个巧妙的技巧是使用 UITableView 而不是 self 管理的 UIScrollView。如果您需要它是水平的,那么只需对表格 View 应用旋转变换即可。

既然您提到“相册”这个词是您的标题,我假设每个 View 都需要加载和显示图像?我不会使图像加载同步,而是使其异步,并使用微调器或其他东西为专辑图像加载状态提供指示器。

关于iphone - 消除过渡期间实现 UIScrollView 相册时出现的故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447109/

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