首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UIImagePickerController避免在拍摄照片后使用/重试视图而不禁用其他控件

UIImagePickerController

UIImagePickerController 是一个 iOS 应用程序提供用户从相机或图库中选择图像的控制器。在拍摄照片后,你可以在 viewWillDisappear: 方法中调用 hideShowCamera 方法来决定是否禁用其他控件。

代码语言:swift
复制
class ViewController: UIViewController, UIImagePickerControllerDelegate {

    // ...

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        hideShowCamera()
    }

    private func hideShowCamera() {
        if showCameraButton.isHidden {
            showCameraButton.isHidden = false
            imagePicker.delegate = self
            imagePicker.sourceType = .camera
            showCameraButton.setTitle("Hide Camera", for: .normal)
        } else {
            showCameraButton.isHidden = true
            imagePicker.delegate = nil
            imagePicker.sourceType = .camera
            showCameraButton.setTitle("Show Camera", for: .normal)
        }
    }

    // ...
}

在上面的代码中,hideShowCamera 方法用于在拍摄照片后决定是否禁用其他控件。如果需要,可以将这个方法放到 viewWillDisappear: 方法中。

优势

  1. 用户体验:在用户拍照后,提供一种简单的方式来隐藏或显示相机视图,可以使应用程序更加用户友好。
  2. 灵活性:这种方法可以应用于多种场景,例如在用户拍照后隐藏相机视图,或在用户选择图片后隐藏图库视图。
  3. 易于实现:这种方法不依赖于特定的操作系统版本或硬件设备,因此可以在不同的 iOS 设备上运行。

应用场景

  1. 照片编辑应用:在用户编辑照片时,可以使用这种方法来隐藏相机视图,以便用户可以更专注于编辑工具。
  2. 社交应用:在用户分享照片时,可以使用这种方法来隐藏相机视图,以便用户可以更专注于选择要分享的照片。
  3. 摄影应用:在用户拍摄照片后,可以使用这种方法来隐藏相机视图,以便用户可以更专注于拍摄其他照片。

推荐的腾讯云相关产品

  1. 腾讯云云开发:这是一个云原生应用平台,可以帮助开发者快速构建、部署和扩展应用程序。
  2. 腾讯云云开发音视频:这是一个音视频处理解决方案,可以帮助开发者快速实现音视频的录制、编辑和直播等功能。
  3. 腾讯云云开发AI:这是一个AI开发平台,可以帮助开发者快速实现AI模型的训练、部署和运行。

产品介绍链接地址

  1. 腾讯云云开发
  2. 腾讯云云开发音视频
  3. 腾讯云云开发AI

请注意,以上推荐的产品是腾讯云云开发平台提供的解决方案,您可以根据自己的需求选择合适的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS中,系统相册的那些事

获取相册最直接的方式——UIImagePickerController 功能介绍:可直接显示分组的相处的列表,用户选择不同相册的照片,可在委托方法中获得该图片对象; API提供三种数据源: UIImagePickerControllerSourceTypeCamera...ALAsset都至少会对应一个ALAssetRepresentation,通过ALAsset的实例方法defaultRepresentation获得对应的ALAssetRepresentation,例如使用系统相机的拍摄的...通过ALAssetRepresentation可以获取ALAsset的原图、全屏图、文件名等信息; 自定义行相册的思路 1.实例化照片库,获取所有的相册; 2.展示相册中的所有照片,可自义展示样式,多以集合视图的形式展现...; 3.选择照片返回上级界面或者进入预览图。...PHFetchResult获取对应资源,采用枚举方式获取资源,效率上会有所提高; 以上内容均来自工作学习中的心得,有不足的地方欢迎大家前来讨论,共同提高。

1.4K40

iOS中,系统相册的那些事

获取相册最直接的方式——UIImagePickerController 功能介绍:可直接显示分组的相处的列表,用户选择不同相册的照片,可在委托方法中获得该图片对象; API提供三种数据源: UIImagePickerControllerSourceTypeCamera...alloc] init]; // 若设备支持相机,使用拍照功能;否则从照片库中选择 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera...ALAsset都至少会对应一个ALAssetRepresentation,通过ALAsset的实例方法 defaultRepresentation获得对应的ALAssetRepresentation,例如使用系统相机的拍摄的...,多以集合视图的形式展现; 3.选择照片返回上级界面或者进入预览图。...PHFetchResult获取对应资源,采用枚举方式获取资源,效率上会有所提高; 以上内容均来自工作学习中的心得,有不足的地方欢迎大家前来讨论,共同提高。

1.1K20
  • iOS 开发实践:iOS照片API的那些坑

    和图片打交道的那些日子里,遇到过不少图片相关的诡异问题。 在这里不会具体对照片API做介绍,只会对其中的一些坑做一些总结。...2.推荐自己写选图控件 对于选图没有太高要求的app,建议使用系统的选图控件UIImagePickerController,这样开发快捷便利,但是在我看来最大的优点在于这样做未来的维护成本会很小,尤其是可以未来几乎第一时间享受到系统选图控件的新功能和新特性...推出了3D touch之后,系统的UIImagePickerController长按图片时会有偶现的crash。...iOS 8开启了Photos.framework的新时代,iOS 7及以下开发者只能使用AssetsLibrary的API。...同步的照片,以及iCloud照片流上的照片,所以如果你的照片被传到照片流上去,通过这两个API返回的相册列表里会有两份相同的照片

    2.8K40

    iOS开发——头像设置及本地沙盒保存,圆形头像显示

    因为头像的唯一性,所以我想大家都会考虑头像中使用单例设计模式。这里我们把头像定义为 HeadsPicture 类。...最后来写 设置头像 按钮背后的选择照片的逻辑代码。 因为是从 照相机 或者 相册 中来读取照片,需要使用 UIImagePickerController"图像选择器" 。...UIImagePickerController 是一种导航控制器,使用它,用户可以打开系统的图片选取器或者打开相机进行拍照。...实现协议 UIImagePickerDelegate中定义的委托方法可以对选定的结果进行操作,或是没有选择取消的操作。 具体代码如下: 首先我们先要确定、用户需要使用相册还是摄像头来直接拍摄头像。...UIImagePickerControllerEditedImage]; 应该改为: UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage]; 也就是改为原图像,不是编辑的图像

    1.7K30

    Swift| 基础语法(五)

    UITableView的使用 UITableView的使用 单例 从相册选择照片或者拍照 ---- 一、纯代码创建应用根试图 func application(_ application: UIApplication...ViewController界面布局文件来 // 初始化该视图控制器关联的用户界面 let vc = ViewController() //通过控件加载视图 //let...} Swift中,创建tableViewCell的方法可以分为两种创建tableView时候注册和需要使用时手动创建。先聊聊创建tableView的时候直接注册cell: myTb?....5个时(包含5)会自动生成一个more视图标签,用来控制第5、6、...以后的视图控制器。...因为Swift中,所有对象的构造器默认都是public,所以需要重写你的init让其成为私有的。 这样就保证像如下的代码编译报错,不能通过。 六、从相册选择照片或者拍照 ?

    2K30

    Human Interface Guidelines —— Tab Bars

    ·严格使用tab bar进行导航  tab bar按钮不应该用于执行操作。如果您需要能够对当前视图中的元素起作用的控件,请改为使用toolbars。...·当其功能不可用时,不要删除或禁用tab 如果tab某些情况下可用,但在其他情况下不可用,则您的app界面会变得不稳定并且不可预知。 确保始终启用所有tabs,并解释tab内容不可用的原因。...(空状态) ·始终只在对应视图中变换 为了让界面保持可预测性,选择一个tab将会直接影响这个tab对应的视图不是屏幕上其他视图。...·使用badging低调沟通 您可以选项卡上显示badge(包含白色文字、数字或感叹号的红色椭圆),以表明与该视图或模式相关的新信息。...tab bar 可让用户app的不同部分之间快速切换,例如时钟应用中的闹钟,秒表和计时器tab。Toolbar 包含用于执行与当前上下文相关的操作的按钮,如创建项目,删除项目,添加注释或拍摄照片

    1.4K150

    初探 Core ML:学习建立一个图像识别 App

    简单来说,机器学习是给予电脑可以不明确撰写程式的情况下学习能力的应用。一个完成训练的模型便是指将资料经由演算法结合的成果。 ?...「为何我们更早一点初始化呢?」 「 viewWillAppear 中定义的要点是什么?」 这要点是当你的 App 试着识别你的图像里有哪些物件时,会快上许多。...新增的代码里,我们实作了 imagePickerController(_:didFinishPickingMediaWithInfo) 来处理选取完照片的后续动作。...同时我们让 UIImagePickerController 我们选取图像消失。...模拟器或上手机上(需安装 iOS 11)Build 及 Run ,接着从相簿选取或相机拍摄图像,App 就会告诉你图像是什么。 ?

    2.8K70

    iOS 自定义相机页面

    文中,顺便说下我碰到的两个问题:拍摄页灰色透明遮罩绘制 和拍摄黑屏问题 代码Demo都有了,我这里只说下流程。 首先写个继承UIImagePickerController的自定义类。...不过我Demo里面没有这样做,因为我这里拍摄完成要隐藏这个绘制的图层,而使用这个属性你就无法隐藏了。...hiddenBtn方法,我的目的是拍摄延迟一会隐藏拍摄按钮再展示预览图片。...这个想法其实是为了省事,正确做法是把隐藏放在获取到图片,即在拍摄的代理方法中。然而万万没想到这个懒惰思想造成了一个Bug。 拍摄图片,偶尔图片会是全黑的。...自定义相机页View中的drawRect方法中使用贝赛尔曲线绘制页面线条,例如四个角框: UIColor *color = kLineColor; [color set]; //设置线条颜色

    2.5K10

    最新iOS设计规范三|3大界面要素:栏(Bars)

    例如,当人们查看全屏照片时,“照片”会隐藏导航栏和其他界面元素。如果你的APP也用到了这个功能,切记要让用户使用简单的手势(如点按)来恢复导航栏。 导航栏标题 导航栏中显示当前视图的标题。...导航栏控件 避免导航栏上挤满太多控件。通常,导航栏最多只能包含视图的当前标题,后退按钮以及一个用于管理视图内容的控件。如果在导航栏中使用分段控件,则该栏不应包含标题或分段控件以外的任何控件。...例如,当用户浏览全屏照片时,“照片”应用程序将隐藏状态栏和其他界面元素。 ? 避免永久隐藏状态栏。如果没有状态栏,人们必须离开您的应用程序才能检查时间或查看他们是否具有Wi-Fi连接。...模态视图例外。因为模态视图为人们提供了一种单独的体验,使他们完成便会被解雇,所以这不是应用程序整体导航的一部分。 选项卡功能不可用时,请勿删除或禁用该选项卡。...避免工具栏中使用分段控件。分段控件允许用户切换上下文,工具栏只对当前页面提供操作。如果你需要切换页面,请考虑使用标签栏。

    9.9K10

    最新iOS设计规范六|10大交互规范(User Interaction)

    游戏以及其他沉浸式APP中,自定义手势可以成为用户体验中有趣的一部分。但在其他APP中,最好使用标准手势,因为这样用户无需花额外的精力去发现和记住新手势。 避免使用标准手势执行非标准动作。...实况照片 当用户与实况照片交互时,实况照片就会变得栩栩如生,通过动作和声音来展示照片拍摄前后的瞬间。...使用系统提供的音量视图让用户进行音频调整。音量视图包括音量级别滑块和用于重新选择输出路径的控件。您可以自定义滑块的外观。 短促的声音和振动请使用系统提供的声音。...例如:非必要情况下,请不要阻止用户听来自其他APP的音乐。一般情况下,最好避免APP运行时更改音频类别,除非APP需要经常录制并马上播放音频。 ? 中断结束,请确定是否自动恢复音频播放。...内容被放置视图和集合视图中显示占位符。 当被放置的内容需要时间传输时显示进度。 当被放置的内容会启动一个进程时,要提供反馈。 被放置失败时通知用户。 对放置的文本应用适当的样式。

    4.1K30

    Android相机开发那些坑

    最近我负责开发了一个跟Android相机有关的需求,新功能允许用户使用手机摄像头,快速拍摄特定尺寸(1:1或3:4)的照片,并支持拍摄出的照片上做贴纸相关的操作。...由于UI线程还要同时处理其他交互逻辑,因此对view的更新速度和帧率无法保证,surfaceview由于持有一个独立的surface,因而可以独立的线程中进行绘制,因此可以提供更高的帧率。...当相机使用完毕,应用程序必须正确地将其释放,以免其它程序访问使用时,发生冲突。...前置摄像头的镜像效果 Android相机硬件有个特殊设定,就是对于前置摄像头,展示预览视图时采用类似镜面的效果,显示的是摄像头成像的镜像。拍摄出的照片则仍采用摄像头成像。...锁屏下相机资源的释放问题 为了节省手机电量,浪费相机资源,开发的自定义相机里,如果预览图像已不需要显示,如按Home键盘切换后台或者锁屏,此时就应该关闭预览并把相机资源释放掉。

    29.5K50

    iOS14中的PHPicker

    独立的进程 内置隐私 不需要直接访问用户相册 不会弹出访问相册提示 仅提供用户选择的照片和视频(App 无法获取其他照片) 如何调用 PHPicker 我们先来看下 PHPicker 的流程图,首先声明...被废弃的 API 有新的 API 出现,也会有一些 API 被废弃, UIImagePickerController 中有三个 sourceType,现在有两个被废弃,只留下 camera。...PHPicker 的缺点 为什么推荐使用 PHPicker,虽然说 PHPicker 有一些优点,但同时也有一些缺点: 加载 iCloud 资源时没有进度回调 不支持图片编辑(比如选择头像要将图片裁剪成正方形...当点击这个提示,将会推出 PHPickerController,此时用户可以修改授权给 App 的照片。...同时我们会监听相册的变化,当用户修改授权的照片,会立即刷新相册,用户可以继续进行选择照片的流程。

    3.6K30

    为什么推荐使用PHPicker

    独立的进程 内置隐私 不需要直接访问用户相册 不会弹出访问相册提示 仅提供用户选择的照片和视频(App 无法获取其他照片) 如何调用 PHPicker 我们先来看下 PHPicker 的流程图,首先声明...被废弃的 API 有新的 API 出现,也会有一些 API 被废弃, UIImagePickerController 中有三个 sourceType,现在有两个被废弃,只留下 camera。...PHPicker 的缺点 为什么推荐使用 PHPicker,虽然说 PHPicker 有一些优点,但同时也有一些缺点: 加载 iCloud 资源时没有进度回调 不支持图片编辑(比如选择头像要将图片裁剪成正方形...当点击这个提示,将会推出 PHPickerController,此时用户可以修改授权给 App 的照片。...同时我们会监听相册的变化,当用户修改授权的照片,会立即刷新相册,用户可以继续进行选择照片的流程。

    2.5K40

    微信小程序接口全解析!从官方 Demo 了解小程序的能力

    需要注意的是,选择全屏播放模式,可以切换到竖向全屏播放,但是并不会退出全屏状态。 地图 使用 map 组件,可以小程序中打开一个地图。...媒体 媒体相关的小程序能力包括: 图片 录音 背景音频 文件 视频 图片包括拍摄照片或选取已有图片。 录音接口,可以录制超过一分钟的音频。录制过程中,小程序顶部导航栏会出现提示。...不过遗憾的是,小程序放入后台运行,Android 的通知中没有音乐快捷操作。 文件接口中,Demo 只是展示了图片的选取保存,不知道是否支持其他文件格式。...这里的文件是永久保存,下次打开小程序时候还可以使用。 视频接口,可以即时录制或选择已录制的视频。但选择录制新视频时,也是通过系统的相机应用进行拍摄。...小程序首次调用图片、录音、读写数据、文件等功能时,会出现权限确认框。 位置 获取当前位置(定位只能获取到经纬度,地理信息还是需要自行获取); 使用原生地图查看位置; 使用原生地图选择位置。

    1.8K30

    最新iOS设计规范十|5大拓展程序(Extensions)

    通过您的应用中(不是键盘本身中)提供使用说明,使入门过程更容易。告诉人们如何启用键盘,输入文本时将其激活,使用它,然后切换回标准键盘。...自定义输入视图 自定义输入视图用自定义键盘替换了标准键盘,但仅在您的应用程序中,不是系统范围内。使用自定义输入视图可提供独特而有效的数据输入方法。...例如,数字实现了用于在编辑电子表格时输入数字值的自定义输入视图。 ? 使功能显而易见。自定义输入视图上的控件应在您的应用程序上下文中有意义。数据输入应清晰直观,因此无需其他说明。...请注意,此声音仅对可见的自定义输入视图可用,并且人们可以“设置-声音”中禁用声音。 如有必要,提供输入附件视图。一些应用程序实现了一个额外的自定义输入附件视图,该视图显示键盘上方。...避免将模式视图放在扩展中。默认情况下,扩展显示模式视图中。尽管扩展名上方可能会发出警报,但请避免分层附加模式视图使用您的主应用程序表示冗长的操作进度。启动共享或操作,应立即关闭活动视图

    3.2K10

    把儿子裸照发给医院检查,父亲被谷歌举报儿童色情!警方认为无罪,谷歌:我不信

    但是相信很少有人遇到因为一张并没有社交媒体上分享的照片遭到调查,甚至是起诉。 最离谱的是,这个照片还是医生要求拍的?? 事情是这样的。...照片被人工智能标记,谷歌的人类内容管理员会审查这些照片,以确认它们符合联邦对儿童性虐待材料的定义。...当Mark的妻子得知这一情况,她从iPhone中删除了马克为他们儿子拍摄照片,因为担心苹果会对她的账户进行标记。...为了避免标记婴儿洗澡或儿童不穿衣服跑过洒水车的照片,谷歌的人工智能在训练中既使用了谷歌过去在用户账户中发现的潜在非法材料的图片,也使用表明虐待行为的图片,以使它更准确地理解应该标记什么。...“从谷歌的角度来看,直接拒绝这些人使用他们的服务更容易”,否则,该公司将不得不解决更困难的问题,“什么是对孩子的适当行为,然后什么是适当的拍摄拍摄”。 但好消息是,Mark有希望取回自己的信息。

    45620

    Human Interface Guidelines —— 工具栏(Toolbars)

    自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS中的组件(顺便学学英语),以便今后使用的时候完全不虚...例如,日历中,使用文本是因为图标会令人困惑。文本的使用还允许收件箱按钮显示日历和事件邀请的计数。...·避免toolbar中使用分段控件(segmented control) 分段控件允许人们切换上下文,工具栏是特定用于当前屏幕的。如果您需要提供切换上下文的方式,请考虑使用tab bar。...Toolbar包含用于执行与当前上下文相关的操作的按钮,例如创建项目,删除项目,添加注释或拍摄照片。 ...Tab bar可让用户app的不同部分之间快速切换,例如,时钟应用程序中的闹钟,秒表和计时器tab。  Toolbar和tab bar永远不会出现在同一个视图中。

    1.2K100

    《101 Windows Phone 7 Apps》读书笔记-BABY MILESTONES

    该应用中每个月的列表(从1到24)支持自定义图片作为页面背景,其主要思想是父母能够合适的时间给宝宝拍摄照片,为每个列表提供一些怀旧的内容。...完成的月份以照片的前景色显示,未完成的月份则以照片的强调色显示。 ?...➔ 该页面的XAML代码中,数据模板中的进度条直接与每个Age实例的PercentComplete属性进行绑定。但是,为了使每个text block控件有合适的前景色,这里使用了自定义值转换器。...反序列化时,每个数据的备份变成了不同对象的实例。    这个正是Baby Milestones使用CurrentAgeIndex设置、使用存储Age实例引用设置的原因。...序列化与反序列化,滚动list box的逻辑再也起任何作用了,因为Age实例已经不在list box之中。

    791100
    领券