MFMailComposeViewController重置其他视图帧

时间:2014-08-20 14:49:11

标签: ios objective-c core-animation mfmailcomposeviewcontroller

当您点击"联系"我的应用程序中的按钮,动画了许多视图以滑出初始视图和联系人视图。其中一个选项是发送和发送电子邮件。点击该按钮后,我会使用MFMailComposeViewController来显示应用内电子邮件视图。

问题:

当电子邮件视图设置为动画时,显示屏将恢复为几乎初始视图。我为其框架设置动画的视图会重置为原始位置,但我淡出的一个视图会逐渐淡出。

我很确定我没有做任何与动画不同的事情,邮件编写器代码与我找到的所有引用完全相同。

修改

这是我的动画代码。我基本上可以在屏幕上显示几个视图,并在屏幕上显示其他几个视图。所有内容都放在故事板上的单个视图控制器中。

[UIView animateWithDuration:0.5f animations:^{
    searchView.frame = CGRectMake(0, originalSearchY - searchView.frame.size.height, searchView.frame.size.width, searchView.frame.size.height);
    footerView.frame = CGRectMake(0, originalFooterY + footerView.frame.size.height, footerView.frame.size.width, footerView.frame.size.height);
    refreshView.alpha = 0;
} completion:^(BOOL finished) {
    [UIView animateWithDuration:0.5f animations:^{
        supportView.frame = CGRectMake(0, 64, supportView.frame.size.width, supportView.frame.size.height);
        closeView.frame = CGRectMake(0, originalCloseY - closeView.frame.size.height, closeView.frame.size.width, closeView.frame.size.height);
    } completion:^(BOOL finished) {}];
}];

以下是为了澄清而发生的屏幕流程......

screen flow

  1. 点击联系人按钮,动画到联系人屏幕
  2. 点击电子邮件按钮,显示电子邮件作曲家
  3. 取消或发送电子邮件
  4. 正如您所看到的那样,可见性将恢复为屏幕1,并且"更新数据"视图消失了(这是我淡出而不是为框架设置动画的视图)

1 个答案:

答案 0 :(得分:0)

好的,所以我终于弄明白了这个问题。我在- (void)viewDidLayoutSubviews进行了一些初始化,并且当模态电子邮件视图出现时被调用,因为它被解雇了。我最后添加了一个布尔值" isInitialized"变量并根据它调整视图处理。