【发布时间】:2014-02-20 03:44:53
【问题描述】:
有人知道如何实现工具栏上的拖动功能以显示另一个视图吗?也许向工具栏添加一个子视图,但我不确定我应该如何分层或处理拖动。
【问题讨论】:
标签: ios ios7 uitoolbar uislider
有人知道如何实现工具栏上的拖动功能以显示另一个视图吗?也许向工具栏添加一个子视图,但我不确定我应该如何分层或处理拖动。
【问题讨论】:
标签: ios ios7 uitoolbar uislider
你需要像 this video 这样的东西吗?
这是一个示例
还有其他的
这些是我的实现方法:
这是我几分钟前写的代码。
// 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;
}
}
}];
}
希望对你有所帮助。
【讨论】: