如何实现 iPhone 照片编辑抽屉?
Posted
技术标签:
【中文标题】如何实现 iPhone 照片编辑抽屉?【英文标题】:How can I implement the iPhone Photos editing drawer? 【发布时间】:2017-02-04 04:25:44 【问题描述】:在“照片”应用中,编辑图像时(参见屏幕截图),底部抽屉会向上滑动并显示选项。我想为我的应用程序实现此功能。最好的方法是什么?
我正在考虑创建一个具有模糊效果的 UIView。但是,我不确定如何创建向上滑动的动画。任何提示将不胜感激。
相关问题:因为这个 UIView 会覆盖主视图的大部分,是否可以在主视图之外(在故事板中)编辑它,所以它不会阻碍主视图?
【问题讨论】:
【参考方案1】:我正在工作——实际上是在打磨——类似的东西。我的风格是用代码开发这种东西。如果你走那条路,你的第二个问题就没有实际意义了。
在代码中,我正在创建一个工具栏,该工具栏使用自动布局在方向上从下到右旋转。这个工具栏 - 就像滑出的控制板一样 - 是 UIVisualEffectView
的子类,用于您正在谈论的模糊。我喜欢我的应用程序的“光”效果,但从屏幕截图来看,这可能是“暗”。
“板”UIVisualEffectView
s 也有 UIButton、UISlider 和 UILabel 子视图。这使得控件显示在模糊上方。
使用自动布局,我创建了两个约束数组(加上幻灯片数组)——一个用于纵向,一个用于横向。 (这只是像我上面描述的那样旋转需要这种方式。如果你擅长将东西保持在横向的底部,你可能会没有阵列。)我根据方向激活/停用。
这是关键:要“滑入”板,我将高度(或横向宽度)设置为零并隐藏子视图,然后设置动画。要滑出板,我会做相反的事情。对于几块板,我(再次)使用 deactivate/activate,但您可以使用 isActive = false/true。
设置约束后,我只是为视图设置动画。我是从工具栏做的,所以代码是:
UIView.animate(withDuration: 0.3) self.superview?.layoutIfNeeded()
如果您从视图控制器执行此操作,请将调用调整为 layoutIfNeeded()
。
其中包含大量编码,但无论您使用 IB 还是直接代码,您面前都有大量工作要做。我认为您还会发现通过 IB 设置和测试约束比直接在代码中进行更繁琐。
【讨论】:
以上是关于如何实现 iPhone 照片编辑抽屉?的主要内容,如果未能解决你的问题,请参考以下文章