新建一个界面GBDatePickerViewController在里面初始化相关数据ide
- (void) setupCtrlui
{事件
//背景rem
self.bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];get
self.bgImageView.backgroundColor = [UIColor blackColor];it
self.bgImageView.alpha = 0.5;io
self.bgImageView.userInteractionEnabled = YES;变量
[self.view addSubview:self.bgImageView];date
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideDatePicker:)];file
tapGesture.numberOfTapsRequired = 1;
tapGesture.numberOfTouchesRequired = 1;
tapGesture.delegate = self;
[self.bgImageView addGestureRecognizer:tapGesture];
CGFloat height = kSetDateViewHeight;
GBSetDateView *setDateView = [[GBSetDateView alloc] initWithFrame:CGRectMake(0,SCREEN_HEIGHT-kIphone6ScaleH(height), SCREEN_WIDTH,kIphone6ScaleH(height))
calendarType:kProfileInfo.calendarType
selectDate:kProfileInfo.birthday];
setDateView.selectDateDelegate = self.datePickerDelegate;
[self.view addSubview:setDateView];
}
- (void) hideDatePicker:(UITapGestureRecognizer *)sender
{
[self.view removeFromSuperview];
}
在外部调用展现代码以下:
GBDatePickerViewController *datePickerViewController = [[GBDatePickerViewController alloc] init];
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
[[[UIApplication sharedApplication] keyWindow] addSubview:datePickerViewController.view];
运行界面以下:
点击黑色的背景,手势不起做用研究了半天终于找到缘由了
_datePickerViewController = [[GBDatePickerViewController alloc] init];
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
[[[UIApplication sharedApplication] keyWindow] addSubview:_datePickerViewController.view];
把新界面的viewcontroller设成成员变量。该tap就起做用了。手势事件的响应链传递。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。