如何利用AutoLayout约束条件隐藏工具条

关键词:播放器工具条 隐藏 ,自动隐藏,单击出现

          最近要做一个监控项目,需要用到类似播放器的界面,通常一个播放器都有顶部和底部两个自定义的工具条,顶部工具条一般放“返回”“视频信息(名字)”,底部工具条则是放一些进度条,开始,前进,后退按钮;通常工具条在视频打开后一般停留几秒钟就会自动隐藏,点击屏幕又会弹出,今天要分享的就是如何利用AutoLayout约束条件来隐藏和打开工具条。

我们新建项目后在xib中放置两个工具条设置约束,和父视图的边距都为0,再设置一个高度即可;我们选择靠近底边的约束条件,拉倒.m文件;

如何利用AutoLayout约束条件隐藏工具条_第1张图片
选择底部或者顶部的约束


两个工具条的约束条件

接下来我们需要几个属性才能完成工作

@property (nonatomic,assign)NSUInteger tapStaticCount;//屏幕静止没有点击的时间,超过5秒自动隐藏工具栏

@property (nonatomic, strong) NSTimer *globalTimer;//定时器

都是为了计时,在屏幕没有操作5秒后,工具条隐藏。

- (void)viewDidLoad {

[super viewDidLoad];

//时间计数设为0

_tapStaticCount = 0;

//定时器响应globalTimerOut  5秒超时的函数

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

self.globalTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(globalTimerOut:) userInfo:nil repeats:YES];

[[NSRunLoop currentRunLoop] run];

});

}

/**

超过5秒就自动隐藏

*/

- (void)globalTimerOut:(NSTimer *)sender

{

if (++_tapStaticCount >= 5) {

dispatch_async(dispatch_get_main_queue(), ^{

[self hideToolView:YES];

});

}

}

/**

隐藏

@param bHiden 是否隐藏

*/

- (void)hideToolView:(BOOL)bHiden

{

if (bHiden) {

//                if (_toolViewBottomConstraint.constant != 0) {

//                        return;

//                }

_bottomViewBotCanstraint.constant = -CGRectGetHeight(_bottomTollView.frame);

_topViewtopCanstraint.constant = -CGRectGetHeight(_topToolView.frame);

} else {

_bottomViewBotCanstraint.constant = 0;

_topViewtopCanstraint.constant = 0;

}

[UIView animateWithDuration:0.25f animations:^{

[self.view layoutIfNeeded];

}];

}

/**

单击手势 隐藏 打开

*/

- (IBAction)singleTap:(id)sender {

_tapStaticCount = 0;

[self hideToolView:_bottomViewBotCanstraint.constant == 0];

}


这里是github的传送门:https://github.com/1002698389/HiddenToolBar

你可能感兴趣的:(如何利用AutoLayout约束条件隐藏工具条)