-1

我有一个带开关的屏幕。如果选择是,则显示一些元素,如果选择否,则隐藏表单上的元素,并向上移动提交按钮,以便在某些元素曾经存在的地方没有空白。

这是代码:

- (IBAction)privacy:(id)sender
{
    [self.view endEditing:YES];

    if (self.privacySwitch.on)
    {
        nameField.hidden = NO;
        emailField.hidden = NO;

        nameLabel.hidden = NO;
        emailLabel.hidden = NO;

        CGPoint pt = buttonProperty.center;
        pt.y += 135;
        buttonProperty.center = pt;

    }
    else
    {
        nameField.hidden = YES;
        emailField.hidden = YES;

        nameLabel.hidden = YES;
        emailLabel.hidden = YES;

        CGPoint pt = buttonProperty.center;
        pt.y -= 135;
        buttonProperty.center = pt;
    }
}

这一切都有效。我遇到的问题是,如果用户输入表单,进入下一个屏幕,然后按下后退按钮,所有元素都像以前一样出现,但是尽管其他元素仍然隐藏,但按钮仍然是原来的位置它看起来很奇怪。这是屏幕截图:

在此处输入图像描述

有人知道如何解决这个问题吗?谢谢!

4

3 回答 3

1

您可以发布您的代码,以便我可以告诉您确切的问题吗?

很可能您已经编写了用于更改 UI 的代码

- (void)viewWillAppear()
{

}

方法。你需要剪切粘贴进去

- (void)viewDidLoad()
{

}

方法。

你好像是新手 如果您不知道这些方法在哪里,那么在此代码的视图控制器中按ctrl+F搜索并搜索这些方法名称。

于 2013-06-05T15:09:40.170 回答
1

在里面写代码

-(void)viewWillAppear
{
}

检查是否处于编辑模式并相应地更改 UI。

于 2013-06-05T12:44:47.577 回答
0

你在使用自动布局吗?正如其他人所说,请在您的viewDidLoadand中发布代码viewWillAppear。您是通过编程方式放置按钮还是仅使用界面生成器?即使将它们正确放置在 IB 中,我也遇到了无法在设备上正确加载的问题。我刚刚删除它并重新添加,一切都很好。请回复更多详细信息,我将编辑我的答案。

于 2013-06-05T17:27:48.370 回答