您的位置:首页 > 移动开发 > IOS开发

iOS开发 从下往上弹出提醒视图或日期选择视图等等背景为半透明

2017-02-04 19:30 447 查看
从下往上弹出提醒视图或日期选择视图等等,背景为半透明,弹下去时半透明慢慢消失,最后隐藏

先是背景与日期选择的初始化-(void)initTimeView{ //时间 背景 提醒视图
//背景透明黑
_blackView = [[UIView alloc]initWithFrame:CGRectMake(0, 60, screen_width, screen_height-60)];
_blackView.backgroundColor = [UIColor clearColor];
UITapGestureRecognizer *touchBlackView = [[UITapGestureRecognizer alloc]init];
[touchBlackView addTarget:self action:@selector(hitRili)];
[_blackView addGestureRecognizer:touchBlackView];
_blackView.hidden = YES;
[self.view addSubview:_blackView];

//时间选择
_timeView = [[TimeChooseView alloc]initWithFrame:CGRectMake(0, _blackView.frame.size.height, screen_width, screen_height*6/11)];
_timeView.datepicker.datePickerMode = UIDatePickerModeDate;
_timeView.backgroundColor = [UIColor colorWithWhite:0.925 alpha:1.000];
[_timeView.sureBtn addTarget:self action:@selector(HadSelectRiLi) forControlEvents:UIControlEventTouchUpInside];
[_timeView.cancelBtn addTarget:self action:@selector(hitRili) forControlEvents:UIControlEventTouchUpInside];
[_blackView addSubview:_timeView];
}再是定义一个bool类型的show表示是否已经弹出,下面是弹出,弹入的方法
-(void)hitRili{ //日历
if (show == NO) {
[UIView animateWithDuration:0.3 animations:^{
_blackView.hidden = NO;
_timeView.frame = CGRectMake(0,_blackView.frame.size.height-screen_height*6/11-64, screen_width, screen_height*6/11);
_blackView.backgroundColor = [UIColor colorWithWhite:0.000 alpha:0.440];
}];
show = YES;
}else if (show == YES){
[UIView animateWithDuration:0.3 animations:^{
_timeView.frame = CGRectMake(0, _blackView.frame.size.height, screen_width, screen_height*6/11);
_blackView.backgroundColor = [UIColor clearColor];
}completion:^(BOOL finished)
{
_blackView.hidden = YES;
}];

show = NO;
}
}可以实现渐渐弹出弹入
如果一开始存在输入框或者textview 需要用
[self.view endEditing:YES];来提高效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息