如何实现 iPhone 照片编辑抽屉?

Posted

技术标签:

【中文标题】如何实现 iPhone 照片编辑抽屉?【英文标题】:How can I implement the iPhone Photos editing drawer? 【发布时间】:2017-02-04 04:25:44 【问题描述】:

在“照片”应用中,编辑图像时(参见屏幕截图),底部抽屉会向上滑动并显示选项。我想为我的应用程序实现此功能。最好的方法是什么?

我正在考虑创建一个具有模糊效果的 UIView。但是,我不确定如何创建向上滑动的动画。任何提示将不胜感激。

相关问题:因为这个 UIView 会覆盖主视图的大部分,是否可以在主视图之外(在故事板中)编辑它,所以它不会阻碍主视图?

【问题讨论】:

【参考方案1】:

我正在工作——实际上是在打磨——类似的东西。我的风格是用代码开发这种东西。如果你走那条路,你的第二个问题就没有实际意义了。

在代码中,我正在创建一个工具栏,该工具栏使用自动布局在方向上从下到右旋转。这个工具栏 - 就像滑出的控制板一样 - 是 UIVisualEffectView 的子类,用于您正在谈论的模糊。我喜欢我的应用程序的“光”效果,但从屏幕截图来看,这可能是“暗”。

“板”UIVisualEffectViews 也有 UIButton、UISlider 和 UILabel 子视图。这使得控件显示在模糊上方。

使用自动布局,我创建了两个约束数组(加上幻灯片数组)——一个用于纵向,一个用于横向。 (这只是像我上面描述的那样旋转需要这种方式。如果你擅长将东西保持在横向的底部,你可能会没有阵列。)我根据方向激活/停用。

这是关键:要“滑入”板,我将高度(或横向宽度)设置为零并隐藏子视图,然后设置动画。要滑出板,我会做相反的事情。对于几块板,我(再次)使用 deactivate/activate,但您可以使用 isActive = false/true。

设置约束后,我只是为视图设置动画。我是从工具栏做的,所以代码是:

UIView.animate(withDuration: 0.3)  self.superview?.layoutIfNeeded() 

如果您从视图控制器执行此操作,请将调用调整为 layoutIfNeeded()

其中包含大量编码,但无论您使用 IB 还是直接代码,您面前都有大量工作要做。我认为您还会发现通过 IB 设置和测试约束比直接在代码中进行更繁琐。

【讨论】:

以上是关于如何实现 iPhone 照片编辑抽屉?的主要内容,如果未能解决你的问题,请参考以下文章

如何将照片添加到 OSX 的 iPhone 模拟器? [复制]

ios8 照片编辑扩展问题

手机录像怎么提取一帧照片

如何在代码中使用内置编辑功能的 iOS 照片应用

如何旋转从照片库中挑选的照片进行编辑

怎么给手机照片重命名