我有一个UIScrollView有几个观点.当用户轻拂手指时,视图会根据手指轻弹的方向向右或向左滚动.基本上我的代码的工作方式与iPhone照片应用程序类似.现在,有没有一种方法可以我以编程方式执行相同的操作,以便我最终得到一个单独运行的幻灯片,只需单击一个按钮并在每个滚动之间进行可配置的暂停?
你是如何真正做幻灯片的UIScrollView?
我正在努力编写应用程序的部分应该像本机iphone照片应用程序.看看Orielly的iphone sdk app开发书,它提供了一个实现这个所谓的页面轻弹的示例代码.那里的代码首先创建所有子视图,然后隐藏/取消隐藏它们.在给定时间,只有3个子视图可见隐藏.经过努力,我得到了应用程序,当时只有大约15页.
一旦我添加了300页,就会发现预先分配这么多子视图的方法存在性能/内存问题.然后我想可能是我的情况我应该只分配3个子视图而不是隐藏/取消隐藏它们.可能是我应该在运行时删除/添加子视图.但无法弄清楚UIScrollView是否可以动态更新内容.例如,在开始时,如UIScrollView所理解的,在屏幕上的不同x偏移(0,320,640)处有3个帧.一旦用户移动到第3页,我如何确保我能够添加第4页并删除第1页但是UIScrollView不会混淆?
希望有这种问题的标准解决方案......有人可以指导吗?
我使用仪器来查看内存泄漏.至少在我不断浏览幻灯片/页面的一个场景中(在UIScrollView中)我没有看到任何内存泄漏.使用乐器 - 在"Allocation lifespan"下,我切换到"Created&Still Living",并看到整个内存大约1.17MB.我认为这意味着我的应用程序仅使用这么多实际内存,并且正在正确回收其余部分.
然而,在浏览了100个左右的页面之后,我收到了内存警告,然后我的几个视图被卸载,导致整个应用程序崩溃.
如果我没有使用大量内存并且没有内存泄漏,为什么我会收到内存警告?由于没有什么我可以真正释放,我没有看到避免崩溃的方法.任何人都遇到这种情况或知道我该怎么办?我是否误解了乐器的任何内容?非常感谢任何评论.
NSString *myfile = [[NSBundle] mainBundle] pathForResource:@"fileName" ofType:@"plist"];
NSMutableArray *mydata= [[NSMutableArray alloc] initWithContentsOfFile:myfile];
/* code to modify mydata */
[mydata writeToFile:myfile atomically:YES]
Run Code Online (Sandbox Code Playgroud)
在模拟器的情况下'fileName.plist'被修改但是在iphone设备文件保持不变的情况下.也没有例外.
以上代码是否可以在iphone和模拟器上正常工作?
当我将鼠标悬停在'mydata'上时,我也会在调试器中看到模拟器和设备的不同值.在模拟器的情况下,我看到例如'5个对象'但是在它显示的实际设备的情况下'{(int)[$VAR count]}'.这可能与文件没有被写入有关吗?
iphone ×3
objective-c ×2
uiscrollview ×2
cocoa-touch ×1
ios ×1
memory-leaks ×1
performance ×1
scroll ×1