【问题标题】:custom sidebar in ios7ios7自定义侧边栏
【发布时间】:2014-10-13 01:33:16
【问题描述】:

我是 iOS 开发的新手,遇到的问题很少。我不知道这种方法是好是坏,但我不想使用任何第三方。我想制作像 Facebook 侧边栏这样的侧边栏,我的代码是

- (IBAction)basicProfile:(id)sender {

    menuViewController *destVC = [self.storyboard instantiateViewControllerWithIdentifier:@"menuView"];


    CATransition *animation = [CATransition animation];
    [animation setDuration:0.5];
    [animation setType:kCATransitionPush];
    [animation setSubtype:kCATransitionFromLeft];
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
    CGRect view = self.view.frame;
    view.origin.x = 280;




    if(self.view.frame.origin.x > 100 )
    {
        [UIView beginAnimations:nil context:(__bridge void *)(self.scrollView)];
        [UIView setAnimationDuration:0.25];
        NSLog(@"%f", self.view.frame.origin.y);
        self.view.frame = CGRectMake(0,0,320,568);
        [UIView commitAnimations];

    }

    else{
        [self.showView setHidden:NO];
    [UIView beginAnimations:nil context:(__bridge void *)(self.scrollView)];
    [UIView setAnimationDuration:0.25];
    NSLog(@"%f", self.view.frame.origin.y);
    self.view.frame = CGRectMake(280,0,320,568);
    [UIView commitAnimations];
        [self.view addSubview:destVC.view]; // this line added menuView to profile view but not on sidebar 
    }
}

我在 storyborad 中有两个 uiview,一个是配置文件,另一个是 menuViewController。为什么 menuView 没有正确加载 result of above code

【问题讨论】:

  • +1 : 我不想使用任何第三方
  • 否 :( 我仍在搜索,但我暂时使用了这个 CDRTranslucentSideBar 库。

标签: ios uiviewanimation sidebar


【解决方案1】:

有两种方法可以做到这一点:

  1. 在同一控制器上使用 2 个 UIView。您可以将 MenuView 与您的视图一起添加,并最初将其隐藏。使用按钮切换显示/隐藏菜单。就像 xview.hidden = TRUE / xview.hidden = FALSE 一样显示/隐藏视图。您可以使用动画为其提供类似菜单的外观。

  2. 为 MenuDisplay 使用不同的视图控制器并将其添加到当前视图控制器,例如 [xview addsubView:menuview.view] 和 [menuview.view removefromsuperview]

【讨论】:

    【解决方案2】:

    步骤 01: 基本上你需要的是一个 viewController 和 2 个视图(1 个用于侧边栏,另一个用于主视图。)

    步骤 02:您需要将这两个视图都添加到视图控制器中。

    步骤 03 :然后添加一个按钮以使用以下方式进行切换:

    -

    (void)OnCollapsibleExtenderTouchUpInside
    {
       [UIView animateWithDuration:1.0 animations:^{
    
        [sideBarObj ToggleVuPosition];
    
        [mainVuObj ToggleVuSize];
    
     }];
    
    }
    

    注意:已经有关于堆栈溢出的解释

    你可以关注这个: Sidebar menu implementation on iOS like Facebook?

    如果您的要求不同,请发表评论。

    【讨论】: