AutoLayOut问题 - 将动画视图从左侧添加到viewController

时间:2015-07-31 09:15:36

标签: ios objective-c iphone uiview autolayout

我在我的应用程序中使用 AutoLayOut 。我将UIView从左侧添加到我的视图控制器。点击按钮我从左侧打开视图。我的UIView被命名为sideView。要打开sidemenu,以下是我的代码。

- (IBAction)openSideMenu:(UIButton *)sender {
    [self.sideView setFrame:CGRectMake(0 - self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [UIView beginAnimations:@"OpenFromLeftSide" context:nil];
    [UIView setAnimationDuration:0.4];
    [self.sideView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [UIView commitAnimations];
}

为了关闭sideMenu我在sideMenu中有按钮。单击按钮,我将关闭sidemenu,如下所示:

- (IBAction)closeSideMenu:(UIButton *)sender {
    [UIView beginAnimations:@"CloseSideMenu" context:nil];
    [UIView setAnimationDuration:0.4];
    [self.sideView setFrame:CGRectMake(0 - self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [UIView commitAnimations];
}

以上两个功能都正常工作。

现在问题是我分配给sidemenu(SubView)里面的按钮的约束。 我为sidemenu分配了3个约束。

  1. 超级视图的顶层空间

  2. 超级视图的底部空间。

  3. 将右边设置为superview,即sidemenu

  4. 但是第3个约束没有正确显示。在模拟器中,按钮的右边缘未设置为我的视图的右边缘(Sidemenu)

    任何人都可以告诉我如何设置约束,我的按钮可以严格地附加到子视图(sidemenu)的右边缘。

0 个答案:

没有答案