시간을 표시하는 UIButton이 있고이 시간은 UIButton의 titleLabel 속성에 표시됩니다. 이 시간을 변경하려면 날짜 선택 도구를 가져 오는이 메서드를 호출하는 단추를 클릭하면됩니다.동일한 메서드를 호출하는 두 UIButtons 다른 결과가
- (IBAction)slidePickerIn:(id)sender {
// Ok button to dismiss picker
[self.view bringSubviewToFront:self.datePickerOK];
// Bring picker to front
[self.view bringSubviewToFront:self.datePicker];
// animate entrance of picker and fade in of dismiss button
[UIView animateWithDuration:.5 animations:^{
[self.datePicker setFrame:pickerIn];
self.datePickerOK.alpha = 1;
}];
}
해제 버튼을 클릭하면이 메서드가 호출됩니다. 날짜 선택 도구와 해제 단추를 제거하고 시간을 표시하는 단추의 제목을 업데이트합니다.
- (IBAction)slideDatePickerOut {
[UIView animateWithDuration:.5 animations:^{
self.datePickerOK.alpha = 0;
[self.datePicker setFrame:pickerOut];
}];
// Set time correctly
NSDate *wake = self.datePicker.date;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"hh:mm a"];
self.wakeUpTime.titleLabel.text = [NSString stringWithFormat:@"%@", [df stringFromDate:wake]];
self.wakeUpTime.date = wake;
}
도 slidePickerIn를 호출하고 당신이 시간을 변경할 수 있습니다 화면에 다른 버튼이있다.
문제 :이 다른 버튼을 클릭하여 표시된 날짜를 변경하면 모든 것이 정상적으로 작동합니다. 그러나 버튼 자체를 클릭하면 시간을 나타내는 제목이 표시되고 날짜 선택기가 표시되는 동안 날짜는 00:00 AM (기본값)으로 바뀝니다. 날짜 선택 도구가 닫히면 시간이 올바르게 업데이트됩니다. 그러나 내가 말했듯이, 다른 버튼을 사용하여 선택기가 표시되는 동안 시간의 값은 변경되지 않습니다. 왜 이것이 될 수 있는지 나는 정말로 확신 할 수 없다. 어떤 도움이라도 대단히 감사 할 것입니다. 당신의 slidePickerIn에서
사소한 세부 정보 - 날짜 포맷터를 만들고 포맷하는 데 거의 0.5 초가 걸립니다. 당신은 그것을 고정시키고 오직 한 번만해야합니다. – HalR
이것은 중단 점을 설정하기에 완벽한시기입니다. - [UILabel setText :]에 기호식 중단 점을 추가하고 문제를 일으키는 버튼을 누르기 직전에이를 활성화하십시오. 뭔가 잘못된 값을 가진 setText : 메시지를 보내고 있습니다. 디버거에서 코드가 깨지면 변경을 초래하는 코드를 추적 할 수 있습니다. –
@HalR 매번 속성을 만들 필요가 없으므로 속성에 포맷터를 유지해야한다는 의미입니까? – schlow