gpt4 book ai didi

iphone - 如何从 UIScrollView 卸载 UIViewController?

转载 作者:行者123 更新时间:2023-12-03 21:19:49 24 4
gpt4 key购买 nike

我使用几乎相同的代码将 UIViewController(称为 LessonScrollView)加载到 UIScrollView 中。在scrollViewDidScroll方法中时调用该方法

- (void)loadScrollViewWithPage:(int)page {

if (page < 0)
return;
if (page >= numPages)
return;

LessonScrollView *controller = [imageViewControllers objectAtIndex:page];
if ((NSNull *)controller == [NSNull null]) {
controller = [[LessonScrollView alloc] initWithPage:page forLesson:[self title]];
[imageViewControllers replaceObjectAtIndex:page withObject:controller];
[controller release];
}

if (controller.view.superview == nil) {
CGRect frame = CGRectMake(0, 80, 320, 285);
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[scrollView addSubview:controller.view];
}

}

在某些情况下,我相信有相当多的页面保留在内存中,直到负责 ScrollView 的 UIViewController 被释放(或发生内存警告)。

我的问题是,如何释放LessonScrollView对象。我会调用一个名为

的方法
- (void)unloadScrollViewWithPage:(int)page 

在scrollViewDidScroll中,页面将是当前页面 - 1。

感谢您提供的任何帮助。

最佳答案

试试这个:

[controller.view removeFromSuperview];//to release the controller's view
[imageViewControllers replaceOjectAtIndex:page withObject:[NSNull null]];//to release the actual controller which should lead to it being dealocated

关于iphone - 如何从 UIScrollView 卸载 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833607/

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