UIDatePicker가있는 경우 최소 및 최대 날짜 범위를 30 년에서 30 년 사이로 설정하려면 어떻게 설정해야합니까? ?UIDatePicker, 오늘 날짜를 기준으로 최대 및 최소 날짜 설정
답변
테스트하지 않았지만 아마도 다음과 같은 것이 좋습니다.
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];
m_datePicker.maximumDate = [NSDate date];
당신은 최대 날짜 (오늘)을 설정하는 코드 줄을 사용할 수 있습니다.
어떻게 날짜> 최대 날짜를 숨길 수 있습니까? – alex
실제로 최대 날짜를 해당 코드 행이 실행되는 정확한 분으로 설정합니다. –
오늘보다 늦게 날짜를 선택할 수는 없지만 사용자는 나중에 날짜를 보게됩니다. –
이 코드 스위프트에 @를 warrenm의 답변을 적응 iOS8의 +
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];
시도하십시오
let currentDate = NSDate()
let dateComponents = NSDateComponents()
dateComponents.year = -13
let minDate = calendar.dateByAddingComponents(dateComponents, toDate: currentDate, options: NSCalendarOptions(rawValue: 0))
dateComponents.year = 30
let maxDate = calendar.dateByAddingComponents(dateComponents, toDate: currentDate, options: NSCalendarOptions(rawValue: 0))
dobPicker.maximumDate = maxDate
dobPicker.minimumDate = minDate
오늘이 문제를보고 UIDatePicker를 확장 스위프트 3의 해결책을 함께했습니다.
extension UIDatePicker
{
/// set the date picker values and set min/max
/// - parameter date: Date to set the picker to
/// - parameter unit: (years, days, months, hours, minutes...)
/// - parameter deltaMinimum: minimum date delta in units
/// - parameter deltaMaximum: maximum date delta in units
/// - parameter animated: Whether or not to use animation for setting picker
func setDate(_ date:Date, unit:NSCalendar.Unit, deltaMinimum:Int, deltaMaximum:Int, animated:Bool)
{
setDate(date, animated: animated)
setMinMax(unit: unit, deltaMinimum: deltaMinimum, deltaMaximum: deltaMaximum)
}
/// set the min/max for the date picker (uses the pickers current date)
/// - parameter unit: (years, days, months, hours, minutes...)
/// - parameter deltaMinimum: minimum date delta in units
/// - parameter deltaMaximum: maximum date delta in units
func setMinMax(unit:NSCalendar.Unit, deltaMinimum:Int, deltaMaximum:Int)
{
if let gregorian = NSCalendar(calendarIdentifier:.gregorian)
{
if let minDate = gregorian.date(byAdding: unit, value: deltaMinimum, to: self.date)
{
minimumDate = minDate
}
if let maxDate = gregorian.date(byAdding: unit, value: deltaMaximum, to: self.date)
{
maximumDate = maxDate
}
}
}
}
setDate
방법은 UIDatePicker
인스턴스의 세 가지 값 (날짜, 최소값, 최대 값)을 설정한다.
setMinMax
은 최소값과 최대 값만 설정합니다. 최소 및 최대는 피커의 현재 날짜를 사용하여 계산됩니다.
- .year
- .month
- .day
- .hour
- .minute
- .second
:
유닛은 다음과 같은 값이 될 수 날짜를 pl로 설정하려면, 우리와 마이너스 삼십년이 코드는 다음과 같습니다 @toddg의
var datePicker = UIDatePicker()
var date = Date()
datePicker.setDate(date, unit:.year, deltaMinimum:-30, deltaMaximum:30, animated:true)
내 빠른 4 버전은 다음과 같습니다
let currentDate = Date()
var dateComponents = DateComponents()
let calendar = Calendar.init(identifier: .gregorian)
dateComponents.year = -100
let minDate = calendar.date(byAdding: dateComponents, to: currentDate)
dateComponents.year = -13
let maxDate = calendar.date(byAdding: dateComponents, to: currentDate)
나를 위해 좋은 작품!
- 1. JQuery UIDatePicker - 최대 날짜 설정
- 2. 다른 날짜를 기준으로 날짜를 설정 하시겠습니까?
- 3. 부자 달력 일정 최소 및 최대 날짜
- 4. 오늘 날짜를 기준으로 조건부로 강조 표시
- 5. jquery 달력에 최소 및 최대 날짜 포함
- 6. Datepicker 동적 최소/최대 날짜
- 7. 오늘 UIDatePicker 변경
- 8. UIDatePicker 날짜 메서드가 잘못된 날짜를 선택합니다. iPhone Dev
- 9. UIDatePicker 모달보기에서 날짜를 유지해야합니까?
- 10. 날짜 범위의 최소 및 최대 연도 받기
- 11. SQL을 사용하여 오늘 날짜 오늘 날짜를 얻으십시오. (월 - 일)
- 12. 수동으로 최대 및 최소 설정 verticalAxis
- 13. 오늘 날짜를 기준으로 KPI 점수를 매길 수 있습니까?
- 14. 현재 날짜 (오늘 날짜)를 기준으로 레코드 수
- 15. 최대 절전 기준으로 날짜 유형을 변환하는 방법
- 16. 이벤트 날짜를 기준으로 날짜 범위를 검색하는 알고리즘
- 17. UIDatePicker
- 18. 테이블 1의 날짜를 기준으로 테이블 2의 최소/최대 날짜를 선택하는 방법 (합계에서 너무 많은 데이터를 가져 오지 않음)
- 19. flotilla : 날짜 범위의 특정 최소/최대 값
- 20. Java에서 주어진 월의 최소 및 최대 날짜를 얻는 방법
- 21. IPhone 개발 - NSString에서 UIDatePicker 날짜
- 22. PST 날짜를 기준으로 UTC로 시작 및 종료 날짜 시간 생성
- 23. VB.net에서 과거 날짜 및 오늘 날짜 만 허용.
- 24. 오늘 날짜를 나타내는 Curdate()
- 25. 날짜를 기준으로 레코드 검색
- 26. MVA 2 (DataAnnotations 네임 스페이스)의 RangeAttribute를 확장하여 오늘 날짜를 기준으로 가변 날짜 범위를 갖습니다.
- 27. 날짜를 기준으로 카운트 결정
- 28. UIDatePicker 및 이전 뷰
- 29. 운동 및 날짜 설정
- 30. 는 날짜를 기준으로
일과 월 열이있는 경우에도 엉망이되지 않습니까? 현재 날짜로 월과 일을 제한합니다. 오늘와 마찬가지로 2015 년 6 월 3 일입니다. 하루가 최대 값 3에 고착 될 것이고 월이 최대 값으로 정체 될 것입니다. – NSNoob
번호 맹목적으로 추측하고 있습니까? – warrenm
아니요, 저는 작업중인 앱에서 시도해 보았습니다. 제가 말씀 드린 문제에 직면했습니다. 결국 나는 날짜별로 수표를 써야했다. – NSNoob