0

左に 400 ピクセル、幅が 280 ピクセルの UIView があります。

メインの UIView を右の 280 ピクセルにシフトし、オフスクリーンの UIView をサイドバーのように画面上で同時に右に移動させようとしています。

私はここで立ち往生しています。

コードでこれを行い、NSLayoutConstraints を使用する方法はありますか?

編集:

-(void) setUpSidebar{
  self.sidebarViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SidebarVC"];
  self.sidebarViewController.view.frame = CGRectMake(-400, 0, 280, self.sidebarViewController.view.bounds.size.height);
  [self.navigationController addChildViewController:self.sidebarViewController];
  [self.navigationController.view addSubview:self.sidebarViewController.view];
  [self.view insertSubview:self.sidebarViewController.view aboveSubview:self.view];
}

-(void)slideToTheRight{
  [UIView animateWithDuration:0.5 animations:^{
    self.sidebarOpened = YES;
    //self.sidebarViewController.view.frame = CGRectMake(-280, 0, 280, self.sidebarViewController.view.bounds.size.height);
    self.view.frame = CGRectMake(280, 0, self.view.bounds.size.width, self.view.bounds.size.height);



  }];

  [UIView animateWithDuration:0.1 animations:^{
    self.sidebarViewController.view.transform = CGAffineTransformMakeTranslation(120, 0);
  }];
}

-(void) slideBack{
  [UIView animateWithDuration:0.3 animations:^{
    self.sidebarOpened = NO;
    //self.sidebarViewController.view.frame = CGRectMake(-280, 0, 280, self.sidebarViewController.view.bounds.size.height);
    self.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
  }];

  [UIView animateWithDuration:0.2 animations:^{
    self.sidebarViewController.view.transform = CGAffineTransformMakeTranslation(-120, 0);
  }];
}
4

1 に答える 1

0

確かに、あなたはこれを行うことができます。変更したい制約への IBOutlet を作成し、その定数パラメーターをコードで変更します。したがって、スーパービューの左端に leftCon という制約へのアウトレットがある場合は、次のようにします。

self.leftCon.constant += 200;
于 2013-08-16T05:19:30.503 に答える