【发布时间】:2016-08-01 21:50:50
【问题描述】:
我正在尝试用最少的 UI 制作 iOS Action 应用扩展。基本上它只会显示一个进度指示器,直到操作完成。我只是希望能够为视图设置动画,使其从顶部向下滑动,然后在动作完成后向上滑动。如果有人熟悉 Instapaper 的 Share 扩展,那么这就是我正在寻找的那种基本 UI。
问题是,当我尝试复制此功能时 - 我只有一个小的 UIView 从顶部向下动画 - 我的视图后面出现黑色背景。我不知道如何使背景透明,以便我的视图后面的东西仍然可见。有谁知道怎么做?
作为起点,我只是使用 Xcode 创建的默认动作扩展模板...
- 在 Xcode 中创建一个新的 iOS 应用项目。
- 添加新目标 -> 操作扩展。
- 在
ActionViewController.m文件中添加viewWillAppear方法来为视图设置动画(使用1 秒动画以便容易看到黑色背景):
代码:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CGRect currFrame = self.view.frame;
CGRect newFrame = currFrame;
newFrame.origin.y -= newFrame.size.height;
self.view.frame = newFrame;
[UIView animateWithDuration:1.0 animations:^{
self.view.frame = currFrame;
}];
}
当它运行时,视图动画从顶部向下滑动。但是,您看到的不是调用应用程序的 UI,而是黑色背景。
我尝试了很多方法 - 更改 modalPresentationStyle(似乎没有做任何事情),将整个视图设置为隐藏(这只会使整个屏幕变黑)等等。
作为参考,这里使用的是 iOS 9.3.2 和 Xcode 7.3.1。
【问题讨论】:
-
你用故事板试过了吗?
-
@RomOne,到底试过什么?
-
抱歉,我的意思是你有没有试过不使用动画,而是使用故事板将你的子视图添加到扩展控制器?
-
有没有动画都没有区别。我的主视图后面的任何东西都是黑色的。如果我将主视图的背景设置为透明,则结果为黑色。我仍然不确定您对使用情节提要添加子视图是什么意思。如果您使用我上面的说明创建应用程序扩展,它将创建一个故事板。向该故事板添加子视图并没有什么不同。到目前为止,我所做的一切都不会允许调用应用程序的 UI 显示在我的主视图的 UI 后面。我的主视图“后面”的任何东西总是呈现黑色。
标签: ios objective-c uikit ios-app-extension