IBOutlets /动作和自定义子视图

时间:2014-08-18 14:37:53

标签: ios uiview subview ibaction

道歉,如果这似乎是一个简单的问题!我使用AVFoundation构建了一个自定义相机应用,允许用户在拍摄后使用该图像(类似于Snapchat)。

我的相机功能正常。目前,按下快门按钮后,我添加(作为子视图)标准UIImageView以显示拍摄的照片。看到我希望在这个阶段有自定义选项(包括在图像上绘图),我继续创建自己的UIImageView子类。我在Interface Builder(xib文件)中设计此视图。

比如说我在这个自定义视图上有一个按钮,按下时,只需删除图像并带我回到摄像机视图以拍摄另一张图像。我可以在IBActions内为我的相机视图处理此自定义视图的ViewController吗?这是不好的做法吗?

任何关于如何最好地实施这一点的指导将非常感谢!感谢。

1 个答案:

答案 0 :(得分:0)

我不建议将按钮放在自定义视图上。

我会让UIViewController显示自定义视图,并为您的操作显示一个按钮。很可能UIViewController会想要在屏幕底部显示UIToolBar,这将允许多个按钮/操作,但这取决于您。

但为什么这么说呢?条块分割。您的自定义视图不需要或不用于按钮。这对你的表现毫无意义......显示图像。您的自定义视图也可能在许多位置使用,其中一些位置不希望显示此按钮。即使您的自定义视图有按钮,如果有人点击它,它也不知道该怎么办。然后,它必须从视图控制器传递该交互,该视图控制器关心动作并处理它。您的自定义视图通常会有公共方法,允许其他代码为其指定方向(如清除或撤消)。

根据所说的内容,您可能决定要使用自定义UIViewController来处理自定义视图上的互动。然后,任何其他视图控制器都可以将其作为容器化视图控制器添加,并且您可以在应用程序的多个位置具有相同的功能而不会出现代码重复。