내 프로젝트에는 UIButton과 UIView가 있으며보기에 UIDatePicker를 추가합니다. 버튼을 누르면 데이트 피커가 열립니다. 어떻게 날짜 선택기를 닫을 수 있습니까?Xcode UIDatePicker를 닫을 때 닫습니다.
1
A
답변
0
일반적으로 UIDatePicker 상단에 툴바를 추가하고 있습니다. 도구 모음에서 날짜 선택 도구를 눌렀을 때 닫을 메서드를 호출하는 단추를 추가합니다.
UIDatePicker 인스턴스 아래에 UIView 인스턴스를 추가하고 touchesBegan 메서드를 구현하여 UIDatePicker를 닫을 수도 있습니다. 이렇게하면 사용자가 datepicker 외부를 탭하면 datepicker를 닫는 touchesBegan 메서드가 호출됩니다.
1
다음 코드가 문제를 해결하기 바랍니다. 이 오버레이보기에 외부 도청뿐만 아니라 "완료"버튼을 탭에 날짜 선택을 모두 일축 :
#import "ViewController.h"
#define kOverlayviewTag 1
#define kDatepickerTag 2
#define kToolbarTag 3
#define kToolbarHeight 44
#define kDatepickerHeight 216
#define kGenericWidth 320
#define kInvisibleAlpha 0
#define kTransparentAlpha 0.5
#define kOpaqueAlpha 1
@interface ViewController()
-(IBAction)buttonTapped:(id)sender;
@end
@implementation ViewController
-(void)buttonTapped:(id)sender
{
if ([self.view viewWithTag:kOverlayviewTag]) {
return;
}
UIView *overlayView = [[UIView alloc] initWithFrame:self.view.bounds];
overlayView.alpha = kInvisibleAlpha;
overlayView.backgroundColor = [UIColor blackColor];
overlayView.tag = kOverlayviewTag;
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissDatePicker:)];
[overlayView addGestureRecognizer:tapGesture];
[self.view addSubview:overlayView];
UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height+kToolbarHeight, kGenericWidth, kDatepickerHeight)];
datePicker.tag = kDatepickerTag;
[datePicker addTarget:self action:@selector(changeDate:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:datePicker];
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, kGenericWidth, kToolbarHeight)];
toolBar.tag = kToolbarTag;
toolBar.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissDatePicker:)];
[toolBar setItems:[NSArray arrayWithObjects:spacer, doneButton, nil]];
[self.view addSubview:toolBar];
CGRect toolbarTargetFrame = CGRectMake(0, self.view.bounds.size.height-kDatepickerHeight-kToolbarHeight, kGenericWidth, kToolbarHeight);
CGRect datePickerTargetFrame = CGRectMake(0, self.view.bounds.size.height-kDatepickerHeight, kGenericWidth, kDatepickerHeight);
[UIView animateWithDuration:0.5 animations:^{
toolBar.frame = toolbarTargetFrame;
datePicker.frame = datePickerTargetFrame;
overlayView.alpha = kTransparentAlpha;
}];
}
- (void)dismissDatePicker:(id)sender {
CGRect toolbarTargetFrame = CGRectMake(0, self.view.bounds.size.height, kGenericWidth, kToolbarHeight);
CGRect datePickerTargetFrame = CGRectMake(0, self.view.bounds.size.height+kToolbarHeight, kGenericWidth, kDatepickerHeight);
[UIView animateWithDuration:0.5 animations:^{
[self.view viewWithTag:kOverlayviewTag].alpha = kInvisibleAlpha;
[self.view viewWithTag:kDatepickerTag].frame = datePickerTargetFrame;
[self.view viewWithTag:kToolbarTag].frame = toolbarTargetFrame;
} completion:^(BOOL finished) {
[[self.view viewWithTag:kOverlayviewTag] removeFromSuperview];
[[self.view viewWithTag:kToolbarTag] removeFromSuperview];
[[self.view viewWithTag:kDatepickerTag] removeFromSuperview];
}];
}
- (void)changeDate:(UIDatePicker *)sender {
NSLog(@"New Date: %@", sender.date);
}
내가 날짜 선택기를 닫습니다 방법을 필요 UIDatePicker pop up after UIButton is pressed
관련 문제
- 1. 닫을 때 대화 상자를 닫습니다.
- 2. 닫을 때 모달 형식을 닫습니다.
- 3. 마우스 오버로 열고 닫을 때 moveout으로 닫습니다.
- 4. JFrame은 닫을 때 데이터를 저장하기 위해 닫습니다.
- 5. Jquery 모바일 페이지 닫을 때 닫습니다.
- 6. uitapgesturerecognizer를 사용하여 uidatepicker를 닫을 수 없습니다.
- 7. Xamarin은 Xcode 8.0을 닫습니다.
- 8. 배경을 닫을 때 서비스를 닫을 수 없습니다.
- 9. Textmate, html 태그를 닫을 때 자동으로 들여 쓰기를 닫습니다.
- 10. 원격 장치가 소켓을 닫을 때 Android 블루투스가 응용 프로그램을 닫습니다.
- 11. 양식을 닫을 때 열려있는 모든 MessageBox를 닫는 방법을 닫습니다.
- 12. ios UISearchDisplayController 스크롤 결과 테이블보기를 닫을 때 닫습니다.
- 13. UIDatePicker를 클릭하면 키보드가 닫히다
- 14. Autohotkey : 특정 프로그램을 닫을 경우 닫습니다.
- 15. xcode 프로젝트 관리자가 앱을 실행할 때 폴더를 닫습니다.
- 16. UITextField를 탭할 때 UIDatePicker를 여는 방법
- 17. mac application, 닫을 때 종료
- 18. 페이지를 닫을 때 쿠키가 삭제되지 않습니까?
- 19. tcpclient 및 networkstream을 닫을 때
- 20. 하위보기로 추가 할 때 UISearchBar 키보드를 닫습니다.
- 21. 모달 창을 닫을 때 Firefox에서 오류가 발생했습니다.
- 22. UIDatePicker를 사용하는 방법?
- 23. UIDatePicker를 반환하는 방법
- 24. uitableviewcell에서 uidatepicker를 표시하는 방법
- 25. UIDatePicker를 숨길 수 없습니다.
- 26. 주중 UIDatePicker를 iPhone에 표시해야합니다.
- 27. 텍스트 상자는 UIDatePicker를 사용합니다
- 28. TableViewCell에 UIDatePicker를 어떻게 추가합니까?
- 29. 몽구스 연결을 닫을 때
- 30. 안드로이드에서 데이터베이스를 닫을 때
에서 UIAnimation에 대한 블록 업데이트되었습니다. 고마워. 고마워. –