【发布时间】:2017-08-12 15:32:30
【问题描述】:
构建一个功能,类似于 Snapchat 的贴纸。 制作照片,添加贴纸(表情符号),发布图像。 我当前的视图层次结构是:
- 主视图
- 查看用户照片
- UI 元素视图(“取消/添加贴纸/发布”)+ 贴纸/表情符号也添加到此视图中。
用户照片的 UIImageView,就像在 snapchat 中一样占据整个屏幕。 UI 元素添加在不同的视图中,但位于用户的 UIImageView 之上。
我的查看截图代码:
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.isOpaque, 0.0)
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
let img = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
if let imageToData = UIImageJPEGRepresentation(img!, 0.2) {
//saving imageToData to Firebase.
}
但这会获取主视图中的所有内容,包括 UI 元素。
一种选择是限制用户的 UIImageView 用于照片,以便 UI 元素不会覆盖它。然后我们可以对有限的视图进行截图。 但这不是应用程序的用户体验应该是什么。
我想到的另一个选项是使用 UIElements 将用户的照片 UIImageView 放置在视图的顶部。然后将所有表情符号添加到其中。但这将涵盖所有 UI 元素。
如何截取用户的 UIImageView 照片 + emoji - UIElements?
【问题讨论】:
-
您提供的上述代码中的“视图”是什么?那是您的
UIViewController的view属性吗?或者,包含 UIImageView + emoji 的用户照片视图?您需要的是一个只有 UIImageView 和表情符号的子视图,并从该子视图创建图像。 -
'view' - 是 UIViewController 的属性。您建议使用带有表情符号的 UIImageView 子视图。但正如我所提到的,我需要 UIImageView 边缘到边缘。也就是说,如果我有另一个带有 UI 元素的子视图 - 它们最终会出现在用户的 UIImageView 下。如果我错了,请纠正我。
标签: ios iphone swift swift3 uiimageview