IBAction 中跳过的用户界面命令

2023-12-05

这是我的代码:

-(IBAction)saveDownloadedImage
{
    NSLog(@"Test");    EXECUTED
    indicatorView.hidden = NO;  NOT EXECUTED
    [indicatorView startAnimating];  NOT EXECUTED
    [statusLabel setText:@"WHY?"];  NOT EXECUTED
    [currentPicture setImage:[imageView image]];   EXECUTED
    ImageFileManager *fileManager = [[ImageFileManager alloc] init]; EXECUTED
    [fileManager saveImageToDisk:currentPicture]; EXECUTED
    indicatorView.hidden = YES;
    [statusLabel setText:@"Image saved successfully."]; EXECUTED
    saveButton.enabled = NO; EXECUTED

}

保存过程大约需要5秒。所以在 UI 中看到该指示器是正常的。但什么也没发生!任何想法?


一切都被执行了。你的问题是saveImageToDisk调用是同步的,您从 UI 线程调用它。当您阻塞 UI 线程时,不会重新绘制任何内容。指示器已显示,但无法绘制到屏幕上,直到IBAction当它再次被隐藏时返回。

您必须异步调用保存方法。
阻塞 UI 线程从来都不是一个好主意。

编辑:请参阅以下问题的答案以获得正确的解决方案:ios 异步调用数据库

Edit2:可能的解决方案之一(未测试)


-(IBAction)saveDownloadedImage {
    indicatorView.hidden = NO; //Note you can use hidesWhenStopped property for this
    [indicatorView startAnimating];
    [statusLabel setText:@"BECAUSE..."];
    [currentPicture setImage:[imageView image]];

    [NSThread detachNewThreadSelector:@selector(save) toTarget:self withObject:nil]
}

- (void)save {
    @autoreleasepool {
        ImageFileManager *fileManager = [[ImageFileManager alloc] init];
        [fileManager saveImageToDisk:currentPicture];

        [self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:NO];
    }
}

- (void)updateUI {
    indicatorView.hidden = YES;
    [statusLabel setText:@"Image saved successfully."];
    saveButton.enabled = NO;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IBAction 中跳过的用户界面命令 的相关文章

  • 如何向 JSQMessagesViewController 单元添加自定义视图,使其包含一个带有一些按钮和文本视图的视图?

    我在用https github com jessesquires JSQMessagesViewController issues 1820 https github com jessesquires JSQMessagesViewCont
  • 使用 Push Transition 效果更改 RootViewcontroller

    在我的iOS应用程序中 我需要更改应用程序之间窗口的rootviewController 因此 当我动态更改我的rootviewcontroller时 它会在更改之前轻拂视图 但我想要的是在更改rootviewcontroller时提供平滑
  • 使用隐藏的 SFSafariViewController 获取 Safari cookie

    我正在阅读以下关于从移动网页到本机 iOS 9 应用程序对用户进行身份验证的文章 并且想知道如何最好地实现类似于下面讨论的隐藏控制器的隐藏 safari 视图控制器 https library launchkit io how ios 9
  • 如何在我的 iOS 项目中添加和执行 .sql 文件?

    我找到了很多关于在 iOS 中使用 SQLite 数据库的教程 但没有找到任何直接引用 sql 文件的内容 谁能告诉我如何将现有的 SQL 数据库链接到我的应用程序 编辑 这是一个 MySQL 转储 我们有一个基于浏览器的抽认卡程序 现在我
  • 自动布局和ios5

    我正在使用故事板 我已经使用了自动布局 但它不适用于 ios5 并且会崩溃 所以我想删除它 但是 如何取消选中自动布局 但如果我取消选中自动布局 我如何为 iPhone 4 和 5 设置屏幕 Regards 您可以在 IB 中禁用自动布局
  • UIBezierPath 的起始和结束角度?

    我在 iOS 中使用如下代码编写了半圆UI贝塞尔路径 and CAShape层 clockWiseLayer CAShapeLayer alloc init CGFloat startAngle M PI 2 CGFloat endAngl
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • 如何使用 ZBar 读取器的 scanCrop 属性?

    我正在使用 iPhone 的 ZBar SDK 来扫描条形码 我希望阅读器仅扫描特定的矩形而不是整个视图 为此需要将阅读器的 scanCrop 属性设置为所需的矩形 我很难理解必须设置的矩形参数 有人可以告诉我如果在纵向视图上它的坐标是 我
  • iPhone 标签栏上的未读计数

    在 Cocoa Touch 上实现 TabBar 上图标的未读计数的最佳方法是什么 我想模仿 SMS 或邮件应用程序的行为 向我的应用程序的用户显示未读消息计数 并使用包含数字的红点 您正在寻找的属性称为徽章 您可以通过执行以下操作来设置它
  • iPad 3 中配备 Xcode 4.2 和 Retina 的 iOS 5.1

    我有一台装有 Mac OS X Snow Leopard 的 Mac 我可以添加 iOS 5 1 吗 使用 iPad 3 的新分辨率 我们将如何处理图像 因为如果该应用程序将在 iPhone 3GS 4 和 iPad 3 中运行 我认为我们
  • 如果 NSExtensionActivationRule 设置为仅音频,则共享扩展不会出现在有功能的应用程序中

    我正在尝试创建一个共享扩展 用户可以从任何有能力的应用程序上传她的录音 该文档甚至有一个简单的示例 请参阅声明共享或操作扩展支持的数据类型 https developer apple com library content document
  • SecItemAdd 创建两个身份

    我正在为 iPhone 开发一个应用程序 需要证书来调用某些服务 因此我将证书添加到我的钥匙串中 执行以下操作 SecCertificateRef cert SecCertificateCreateWithData NULL bridge
  • UIImage:如何获取网站选项卡图标

    我正在开发一个 RSS 阅读器 我需要获取每个提要的图标 例如 如果我的提要是 google com 我想获取 G 图标并将其放入 UIImage 或其他内容中 关于如何实现这一目标有什么想法吗 最简单的方法是使用 Google NSStr
  • iPhone SDK - 在后台线程中运行重复进程

    我有一个iPhone我想在其中每隔一段时间在后台执行一个方法的应用程序1第二 所以在我的主线程中 我有以下代码UIViewController viewDidLoad NSTimer timerWithTimeInterval 1 0 ta
  • Cognito/IAM 策略和 S3 获取对象

    我正在尝试将 S3 和 Cognito 集成到我的 iOS 应用程序中 但到目前为止尚未成功 我相信该错误与我针对 Auth 和 Unauth 用户的 IAM 策略有关 所以这是我的政策 Version 2012 10 17 Stateme
  • 具有多种自定义单元格类型的 RxSwift 表视图

    我想知道是否有任何代码示例RxSwift当我可以在一个表视图中使用多个自定义单元格时 例如 我有两个部分 第一部分有 10 个单元格 类型为CellWithImage标识符和第二部分有 10 个带有类型的单元格CellWithVideo标识
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • 如何使导航栏透明并淡出,就像 iPhone 中的照片应用程序一样

    我是 iPhone 编程新手 有人可以帮我吗 我想在iPhone中开发一个类似照片应用程序的应用程序 如何使导航栏和工具栏透明并淡出 就像 iPhone 中的照片应用程序一样 感谢你 UINavigationBar继承自UIView 所以你
  • 下标:使用字符串枚举访问我的字典值

    我想做类似的事情 使用字符串枚举访问我的字典值 我试图重载字典的下标但没有成功 访问字典 let district address JsonKeys district 其中 JsonKeys 是 enum JsonKeys String c
  • 当设置 setVisibleXRangeMaximum 时,iOS-Charts X 轴值无限重复

    我正在尝试绘制一个图表 其中 x 轴是TimeIntervalY 轴是power consumption 由于每天都会有数据 因此将有太多数据无法显示 因此 我想一次显示 5 个值 我通过设置实现了这一点self chart setVisi

随机推荐

  • 在 python 中使用 subprocess.Popen 运行 java 主类

    我想执行java主类main java通过 python 使用subprocess Popen main java需要 3 个参数 我想知道该怎么做 例如我有一个HelloWorld java class public class Hell
  • Xamarin Forms 按钮中的 Android 资源名称

    Play 商店现在允许您指定要使用的预启动报告模拟器的凭据 为了让模拟器知道将凭据添加到哪个文本字段以及单击哪个按钮进行登录 它会询问文本字段和按钮的资源名称 Xamarin Form 的任何属性是否会转换为资源名称 我尝试查看 obj a
  • 使用异步管道到模板上的属性

    export class MyClass data MyData constructor private dataService DataService this dataService getData subscribe myData g
  • 二元运算符 / 不能应用于 Int 和 Double 类型的操作数 [重复]

    这个问题在这里已经有答案了 您好 对于 Swift 和一般编程新手来说 通过练习给出的代码正是 Playground noun a place where people can play import UIKit let height 12
  • 默认的“”边距有多宽?

    默认值是什么marginHTML为其设置的标签 我注意到有一些自动保证金 但我想知道是否有人知道它是多少 以及是否在px or etc 在大多数主流浏览器中 默认边距为8px在所有方面 它以像素为单位定义为user agent styles
  • 从支持的设备中删除 3G

    我正在尝试找出如何删除 AppStore 中我的应用程序支持的 iPhone 3G 设备 我向 Apple 支持人员发送了电子邮件 要求他们在 reqs 部分中更新它 他们回复说我需要更新我的 UIRequiredDeviceCapabil
  • 如何使用 fxml 在 javafx 中的文本字段上触发焦点事件?

    我在相关 fxml 的控制器类中有这个函数 我需要在焦点从文本字段中触发时触发此函数 但场景生成器没有类似于 onfocusout 的事件 如何使用控制类来实现这一点 FXML private void ValidateBikeNo Too
  • 无法使用 PERMISSIVE 模式保留 pyspark 中损坏的行

    我收到了一个 csv 文件 我需要在其中使用 pyspark 执行某些清理任务 在清理之前 我正在进行一些架构验证检查 下面是我的代码 schema for the input data def get input schema retur
  • 使用 SED 通过带有要删除的行号的索引来删除某些行

    我得到一个大文件 称之为 file txt 可能有 20000 行或更多 其中一些行必须从原始文件中删除 并且必须创建一个包含其余行的新文件 例如 newfile txt 要删除的行位于另一个文件中 例如index txt 所以我是这样的
  • 如何在 Django 中正确覆盖用户 admin

    我想添加内联模型并从 Django 管理中的用户更改表单中排除一些字段 我正在尝试覆盖 Django 的内置UserAdmin保留用户更改设计 class UserCustomAdmin UserAdmin list display id
  • SQL计算sys表中所有表的每一列中的所有空值

    我有以下 SQL SET NOCOUNT ON DECLARE Schema NVARCHAR 100 dbo DECLARE Table NVARCHAR 100 NULL DECLARE sql NVARCHAR MAX IF OBJE
  • 如何为 FormControls 创建自己的组件?

    我想创建一个表单并为其控件使用一个新的自定义组件 所以我创建了一个新组件并将其包含到父窗体中 但是 尽管父表单有一个 formGroup Angular 却抱怨它没有 错误 错误 formControlName 必须与父 formGroup
  • 在 OpenCV 中缩放通道的简单方法

    看来给定一个多通道图像img我不能做到这一点 img cv Scalar 1 5 0 5 2 1 我想按不同的比例缩放每个通道float factor 有没有一种简单的方法可以做到这一点 I could use cv transform 但
  • 可变 NSHTTPURLResponse 或 NSURLResponse

    我需要修改 NSURLResponse 中的响应标头 这可能吗 我刚刚和一个朋友正在谈论这个问题 我的建议是编写 NSURLResponse 的子类 沿着这些思路 interface MyHTTPURLResponse NSURLRespo
  • 如何使用 VBScript 移动鼠标

    我正在尝试使用 VBScript 移动鼠标 我尝试使用 Sendkeys CLICK LEFT x y 和发送密钥 MOVETO 10 20 但它不起作用我也尝试使用鼠标键 所以我可以用键盘移动它 因此使用Sendkeys激活它 但它也不起
  • 进度圆 - 在圆的末端画一个小圆弧 + 更多

    如何在进度圆的末端绘制一个小圆圈 并在其下方 上方添加一个小文本块 示例图片 div class radial progress div class circle div class img div div class mask full
  • PowerShell I与子类比较

    假设我们有这 3 个类 Class BaseClass System IComparable int Value BaseClass int v this Value v int CompareTo that If Not that is
  • Android:如何将标题置于工具栏中居中

    我是第一次在项目中使用ToolBar 所以我不知道如何在android中自定义工具栏 我需要将标题置于工具栏中央 请告诉我如何做到这一点 预先感谢 简单地在工具栏居中添加 TextView 的问题是在工具栏中添加菜单项 这会偏移居中的文本
  • 带大括号的 Sql 代理作业 SSIS 包参数值导致 SqlManager UI 出现错误

    我有一个 SSIS 包部署到 SSISDB 目录 该包可使用 FTP 详细信息等值的参数进行配置 我注意到 当任何参数值包含左大括号时 尝试为此包创建 SQL 代理作业会失败 不幸的是 密码参数之一包含左大括号 问题是 在不替换实际包中该字
  • IBAction 中跳过的用户界面命令

    这是我的代码 IBAction saveDownloadedImage NSLog Test EXECUTED indicatorView hidden NO NOT EXECUTED indicatorView startAnimatin