2015-07-29 19 views
10

IOS9 simülatörü ile Xcode beta 7 kullanıyorum. Bir UIDatePicker öğesini bir datePickerMode ile kullanmak UIDatePickerModeTime yalnızca Saatleri gösterir ve dakikalar değildir.iOS9: UIDatePicker with datePickerMode of UIDatePickerModeTime yalnızca Saatleri gösterir ve hiçbir dakika

bakınız ekran görüntüsü: iOS 7 ve 8 üzerinde

enter image description here

, belli ki beklendiği gibi çalışır ve Saatler ve Dakikalar hem gösterir. Ekran Görüntüsü:

enter image description here

Gerçekten tekerleği yeniden icat ve kendi zaman seçici rulo istemiyoruz. Bunun neden olabileceği ve nasıl düzeltileceği ile ilgili herhangi bir fikir var mı? Google'da hiçbir şey bulamıyorum.

sayesinde Alex

+0

Apple'dan bir yanıt var mı? Bu sorunu hala Beta 5'te görüyorum. IOS 9.0'dan önce bir çözüm bekleyebilirsek (belki de yarattığınız biletten) biliyor musunuz? QA ekiplerimizin, iOS 9 geliştirmemizi/uyumluluğunu, herkese duyurmadan önce test etmelerine izin vermek kesinlikle hoş olurdu. Bu sorun için bana – u2Fan

+0

http://stackoverflow.com/a/32751985/6034101 çalışır. Teşekkürler. – Ashwini

cevap

8

Bu sorunun, iOS 9 sürüm notlarında yararlı bir açıklaması bulundu - daha dikkatli okumalıyım gibi görünüyor.

UIPickerView ve UIDatePicker artık yeniden boyutlandırılabilir ve uyarlanabilir - daha önce, bu görünümler, yeniden boyutlandırmaya çalışmış olsanız bile bir varsayılan boyutu zorlar. Bu görünümler artık iPhone'daki cihaz genişliği yerine varsayılan olarak tüm cihazlarda 320 puanlık bir genişliğe sahip. Varsayılan boyutun eski zorlamalarına dayanan arabirimler, büyük olasılıkla iOS 9 için derlendiğinde yanlış görünecektir. Karşılaşılan sorunların tamamı, örtük davranışa dayanmak yerine seçici görünümleri tam boyutta kısıtlayarak veya boyutlandırarak çözülebilir. Benim durumumda

iOS 9 Release Notes

yapmam gereken tüm "Önerilen Sınırlamalar sıfırla" o zaman UIDatePicker tüm kısıtlamaları kaldırmak ve oldu. Yeniden inşa et ve şimdi her şey yolunda.

+0

Önerilene önerme benim için işe yaramadı (DatePicker bir TableViewCell içinde). Eşit genişliklere süper görüntü, sabit yükseklik, lider alan ve süper görüntü ve bom için üst alan yaptım - her şey iyi görünüyordu. – nickdnk

+0

Bu benim için çalışan çözüm. Benim Nib dosyasında Leading, Trailing, Top, Alt kısıtlamaları eklendi ve işe yarıyor. – Alex

23

benim tableview UIDatePickerModeDate kullanarak UIDatePicker ile iOS 9.0 kamu yayımlanmasından sonra bu karşılaştı.

Ben istenen birine geri değişen o zaman görüntülenen hemen önce UIDatePicker modunu değiştirerek ve kendisine etrafında kesmek:

[myDatePicker setDatePickerMode:UIDatePickerModeDateAndTime]; 
[myDatePicker setDatePickerMode:UIDatePickerModeDate]; 

Ben sorunu çözer yeniden çizilmesi tahmin ediyorum.

UIDatePicker with white blocking space.

FLEX kullanarak incelenmesi, bu bir parçasıdır: bu mayın neye benzediğini, çünkü paylarının uğruna ben aslında dakika daha ziyade subviews bir hata göstermiyor meselesi olduğunu sanmıyorum Düz beyaz arka plana sahip UIDatePicker.

UIDatePicker bug in subviews.

+1

Bu işe yaradı, garip, herkese teşekkürler, gerçekten rahatsız edici böcek için teşekkürler. – BootMaker

+0

teşekkürler, garip ama çalışıyor: D –

+0

parmak yolu yok! teşekkürler çok ahbap. Bu süper yardımcı oldu! –

1

@LordParsley çözüm hile yaptı.

Sadece bazı ek ayrıntılar:

Ben iPhone 5 dizi değil iPhone'da 6/6 artı lider ve kısıtlamaları sondaki ile oluşur dikkat edin. Görünüşe göre, yalnızca çerçeve genişliği 320 olduğunda ortaya çıkar. Muhtemelen, örtüşmelere neden olan seçici alt görünümlerinin yanlış hesaplamasıdır. Bu oldukça komik çünkü Apple varsayılan değeri belirleyen ve sorunu ele geçiren kişi.

Her neyse, bunun artık beta sürümünde olan iOS 9.1 ile çözülmesini umuyorum.

+0

Hala 9.1 beta 3'te sabit değil –

1

iOS 9'da Uygulamamı çalıştırırken aynı sorun var, .xib dosyasında UIDatePicker kullanarak uygulama.

UIDatePicker* picker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 320, 162)]; 
[self.view addSubview:picker]; 

Bence bu yeni yazı San Francisco (yazı tipi Helvetica daha büyüktür) ve .xib dosya ile sorun şu: Kodda ekleyin bu sorunu çözüldü. Bu yardımın umarım. Teşekkür ederiz!

2

Xcode'u 7.0'a yükseltirken bir sorun yaşadım.

UIDatePicker görüntülendiğinde, orta bölüm, LordParsley'nin yanıtına göre boştu.

iOS 9 için UIDatePicker'ın yüksekliği 216; önceki sürümlerde ise yükseklik 162'dir ve yüksekliği 162'ye zorlamak sorunu çözmüştür.

Görünümüm bir storyboard içinde tanımlandığından, UIDatePicker üzerinde bir yükseklik kısıtlaması ayarlıyorum ve görünümün viewDidLoad içinde < 9.0 iOS sürümleri için yüksekliği 162 olarak ayarladım.

- (void) viewDidLoad { 
    [super viewDidLoad]; 

    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 9.0) { 
     // 
     // NOTE: iOS 9, or Xcode 7, now sets UIDatePicker height at 216; whereas, 
     // iOS 8, or Xcode 6.x, set it at 162. 
     // 
     // If the height is left at 216, then on iOS 7.1, the middle portion of the 
     // UIDatePicker control is missing. Setting the hieght to 162 fixes the issue 
     // within this application. 
     // 
     // UIDatePicker frame cannot be used to adjust the size, therefore use a 
     // height contraint to change the size. 
     // 
     self.dateHeightConstraint.constant = 162; 
    } 
} 
+1

iOS 8'de 216 yüksekliği olabilir. Bu, iOS sürümünü çalıştırmayla ilgili değil. Belki Xcode sürümü ve iOS Base SDK hakkında, evet. –

+0

iOS @ 'a ilişkin açıklama için teşekkürler @ Cœur. Öyleyse dev araçlarla çalışma süresinden daha çok şey var. –

0

iPhone 5S'de iOS 9.1 UIDatePicker'ı görüntülediğimde, aylık adlarım kısaltıldı. Bu sorunu yerel bir özelliği aşağıdaki gibi ayarlayarak düzelttim:

NSLocale *uk = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
NSCalendar *cal = [NSCalendar currentCalendar]; 
[cal setLocale:uk]; 
[_backdateDatePicker setCalendar:cal]; 
İlgili konular