在选项卡式 UIPopover 中使用 UIImagePicker

Posted

技术标签:

【中文标题】在选项卡式 UIPopover 中使用 UIImagePicker【英文标题】:Using UIImagePicker in a tabbed UIPopover 【发布时间】:2011-01-21 01:16:00 【问题描述】:

我正在开发一个 iPad 应用程序,该应用程序需要在设备/相册、远程和应用程序中包含多个图像源。现在理想的情况是有一个 UIPopover 控制器,每个源都有 3 个选项卡。唯一的问题是我似乎无法弄清楚如何让 UIImagePicker 出现在自己的选项卡中。我正在尝试做的与 Apple 的 iPad 主题演讲非常相似。照片图标的弹出框有选项卡,最左边的名为媒体的选项卡肯定有一个 UIImagePicker。我不知道他们是怎么做到的,我可以做这样的事情吗?我认为主要问题是图像选择器是它自己的导航控制器,它不能被推送到另一个导航控制器。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

看看这个 - https://github.com/key1jp/ELCImagePickerController

您可以使用自定义资产库来实现它

【讨论】:

【参考方案2】:

内置的图像选择器不好。

创建您自己的图像选择器并将其作为普通视图添加到您的导航控制器。从 WWDC 2010 示例代码中的 Matt Tuzzolo 或 MyImagePicker 开始。请注意,您可能想要添加图像和视频预览 - 我从 MyImagePicker 复制了图像查看器并添加了一个“添加”或“删除”按钮,视频也是如此。

您的图像选择分两个步骤,一个用于选择组,另一个用于选择组内的资产。我建议将第一步一分为二 - 如果只有一个,则直接进入该组,即当您找到第一个组时,检查该组是否是最后一个(阻止停止参数)。然后推右视图控制器。

还故意修改缩略图的大小,它们现在是 iPhone 大小。添加一行元数据(图标和持续时间)看起来更好,并且为视频提供更多信息。

我还建议在 2 秒后添加“单击并按住”功能以获取更多信息。

通过创建一个协议来处理不同的来源,它可以提供你想要的,即

-(BOOL)isImageAtIndex:(NSInteger)index;
-(UIImage*)thumbnailForUndex:(NSInteger)index;
-(void)setSelectedAtIndex:(NSInteger)index;

创建一个处理本地文件、包含的资源和资产的源是完全可能的——我使用 NSURL 并检查 url 方案。

【讨论】:

【参考方案3】:

你没有为你的标签使用 UITabBarController 吗?您应该能够将 UIImagePickerController 直接添加到 viewControllers。不过,我不确定这是否支持使用图像选择器; the documentation 只提到模态显示或在 UIPopoverController 中显示。

查看 Apple 应用程序以了解可以使用各种内置控件做什么通常没有用处,因为 Apple 允许自己使用私有 API。

【讨论】:

以上是关于在选项卡式 UIPopover 中使用 UIImagePicker的主要内容,如果未能解决你的问题,请参考以下文章

使用 swift 在选项卡式应用程序中模态显示和关闭视图

如何在选项卡式布局中显示 Android gridview

在 Avalandock 中禁用“停靠为选项卡式文档”

如何在选项卡式面板中写入内容?

如何使用列表视图在选项卡式活动的片段中呈现 SQLite 表数据 [重复]

使用 MFC Feature Pack 1 在 VS2008 中停靠选项卡式窗格位置