需要在按下按钮时“刷新”应用程序的屏幕

Posted

技术标签:

【中文标题】需要在按下按钮时“刷新”应用程序的屏幕【英文标题】:Need to "refresh" app's screen on button press 【发布时间】:2014-03-01 04:22:50 【问题描述】:

我有一个应用程序可以让用户拍摄照片。现在,当用户按下按钮拍照时,我创建了一个CALayer 对象并将其内容属性设置为与刚刚创建的图像对象相同。

所以基本上,当用户拍摄他们的照片时,捕获的图像会显示在屏幕上。

现在我有一个始终在屏幕上的按钮。如果用户还没有拍照,并且他们按下了这个按钮,那么它会执行一个 segue 并将他们带回主应用程序屏幕。

如果用户拍摄了一张照片,并且他们按下了此按钮,它会拉出一个操作表并为他们提供 2 个选项:“取消”和“删除”。如果他们按“删除”,它会继续并将他们带回主应用程序屏幕。

我需要这样做,如果他们按下“删除”,它将基本上刷新视图控制器,以便他们仍然能够捕捉到全新的图片。我不希望它把他们带回主应用程序屏幕。

我只是不知道如何“刷新”视图控制器。我试过打电话给[self.view setNeedsDisplay];,但这没有任何作用。我有一种感觉,最好的办法是以某种方式“杀死”或“刷新”创建的 CALayer,但我不确定这是否是最好的方法或我会如何做到这一点。

另外,我正在使用AVFoundation,如果这有影响的话。

非常感谢任何帮助。

更新:我现在像这样在图层上调用setNeedsDisplay 方法调用,它运行良好:

[_subLayer setNeedsDisplay];

我是否需要做任何其他事情,例如“刷新”或“杀死”保存刚刚捕获的图像的对象,或者ARC 会处理这些?

【问题讨论】:

在viewWillAppear中怎么样:? 【参考方案1】:
Here session is Object of AVCaptureSession

if ([session isRunning]) 

        [session stopRunning];

[session startRunning];

【讨论】:

与我添加到原始问题底部的“更新”解决方案相比,这是否会更好地提高性能?

以上是关于需要在按下按钮时“刷新”应用程序的屏幕的主要内容,如果未能解决你的问题,请参考以下文章

如何在按下导航栏时快速隐藏键盘

如何在按下按钮后单击屏幕上的图像

F5(刷新)作为提交

如何在移动屏幕上按下按钮时发生动画?

推送通知或带计时器的线程

如何在按下按钮后每 10 分钟重复一次方法并在按下另一个按钮时结束它