gpt4 book ai didi

ios - 创建一个可以嵌入到 UIViews 中并处理自己的模态的可重用控件

转载 作者:行者123 更新时间:2023-11-29 02:34:32 25 4
gpt4 key购买 nike

有一个我正在尝试正确构建的特定控件。我将其称为 ImageTile。它基本上是一个小方框,当用户点击它时,将向用户显示(通过弹出窗口中的操作表)从库中选择图像或拍照的选项。根据响应,我然后在弹出框内显示 UIImagePickerController(用于选择图像)或模态显示(用于拍摄新照片)。一旦他们拍摄/选择图像,我就会出现一个模态视图,并允许他们以几种简单的方式编辑图片。当他们完成编辑时,模态消失,原始的 ImageTile 不再是一个空白的方框,而是被用户编辑过的图像填满。

问题是这个 ImageTile 控件将在应用程序的多个不同部分、多个 View Controller 层次结构等中大量使用……我真的希望它成为一个基本上完全独立的单元,这样每当我将 ImageTile 粘贴到屏幕上的 UIView 中时,上述所有功能都由 ImageTile 本身处理。

最初,我将它设为 UIViewController 的子类(因此它可以呈现模态等),并且只是将其 View 添加为屏幕上“holder” View 的 subview 。我知道不推荐这样做,因为那时 Controller 不是 VC 层次结构的一部分……而且,我最终遇到了一些关于自动旋转等非常奇怪的行为,尤其是当涉及到相机时。

实现这样的东西的“正确”方法是什么?

最佳答案

我认为您通过将其设为 UIViewController 子类所做的事情是正确的。您应该只使用 UIViewController 公开的方法来添加 subview Controller ,例如 - addChildViewController:

您还会注意到,Interface Builder 有一个容器 View 对象,专门为在 subview Controller 的层次结构中保留一个位置而设计:

enter image description here

关于ios - 创建一个可以嵌入到 UIViews 中并处理自己的模态的可重用控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26514714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com