【问题标题】:iOS Pandora like bottom toolbar [closed]iOS Pandora 喜欢底部工具栏 [关闭]
【发布时间】:2014-02-20 03:44:53
【问题描述】:

有人知道如何实现工具栏上的拖动功能以显示另一个视图吗?也许向工具栏添加一个子视图,但我不确定我应该如何分层或处理拖动。

【问题讨论】:

    标签: ios ios7 uitoolbar uislider


    【解决方案1】:

    你需要像 this video 这样的东西吗?

    • 这是一个示例

    • 还有其他的

    这些是我的实现方法:

    • 创建工具栏。
    • 创建一个BottomView(应该在toolBar后面。
    • 在工具栏上添加上下方向的 SwipteGestures
    • 在目标方法中,只需执行该动画即可上下移动。

    这是我几分钟前写的代码。

        // add the variables
        UIToolbar *myToolBar;
        UIView *hiddenView;
        BOOL movedUP;
    
    
        -(void)addToolBar{
            [self addBottomMostHiddenView];
            UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
            [self.navigationController.toolbar setBarStyle:UIBarStyleBlackOpaque];
            UIBarButtonItem *one = [[UIBarButtonItem alloc] initWithTitle:@"One Item" style:UIBarButtonItemStylePlain    target:self     action:nil];
            UIBarButtonItem *drag = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon-drag-64.png"] style:UIBarButtonItemStylePlain target:self   action:nil];
        drag.enabled = NO;
            UIBarButtonItem *two = [[UIBarButtonItem alloc] initWithTitle:@"Two Item" style:UIBarButtonItemStylePlain    target:self     action:nil];
            NSArray *toolbarItems = [NSArray arrayWithObjects:one,spaceItem, drag, spaceItem , two, nil];
    
            myToolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 430, self.view.frame.size.width, 80)];
            myToolBar.tintColor = [UIColor whiteColor];
            myToolBar.barTintColor = [UIColor colorWithRed:53.0/255.0 green:70.0/255.0 blue:103.00/255.00 alpha:1];
             [self.view addSubview:myToolBar];
            [myToolBar setItems:toolbarItems animated:YES];
    
            UISwipeGestureRecognizer *upGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(dragMe:)];
        upGesture.direction = UISwipeGestureRecognizerDirectionUp;
            [myToolBar addGestureRecognizer:upGesture];
    
            UISwipeGestureRecognizer *downGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(dragMe:)];
        downGesture.direction = UISwipeGestureRecognizerDirectionDown;
            [myToolBar addGestureRecognizer:downGesture];
    
        }
    
    
        -(void)addBottomMostHiddenView{
            hiddenView = [[UIView alloc]initWithFrame:CGRectMake(0, 510, self.view.frame.size.width, 40)];
            UIImageView *image = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"iconProgress.png"]];
            [hiddenView addSubview:image];
            [hiddenView setBackgroundColor:[UIColor colorWithWhite:0.2 alpha:0.8]];
            [self.view addSubview:hiddenView];
        }
    
        -(void)dragMe:(UISwipeGestureRecognizer *)gesture {
            [UIView animateWithDuration:0.5 animations:^{
                if(gesture.direction == UISwipeGestureRecognizerDirectionDown) {
                    if(movedUP) {
                        myToolBar.frame = CGRectMake(0, 430, self.view.frame.size.width, 80);
                        hiddenView.frame = CGRectMake(0, 510, self.view.frame.size.width, 80);
                        movedUP = NO;
                    }
            }else  if(gesture.direction == UISwipeGestureRecognizerDirectionUp) {
                if(!movedUP) {
                    myToolBar.frame = CGRectMake(0, 390, self.view.frame.size.width, 80);
                    hiddenView.frame = CGRectMake(0, 470, self.view.frame.size.width, 80);
                    movedUP = YES;
                }
            }
        }];
    
    }
    

    希望对你有所帮助。

    【讨论】:

    • 请以计算方式设置框架,而不是硬编码方式。我这样做只是为了给你线索。
    猜你喜欢
    • 2017-09-26
    • 2016-06-28
    • 2022-11-10
    • 2016-06-10
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多