Podczas korzystania z elementu HTML select, UIWebView
prezentuje natywną UIPopoverController
jako listę rozwijaną na iPadzie (iPhone używa UIPickerView
, który działa poprawnie).iOS 11 UIWebView menu rozwijane całkowicie zepsute na iPadzie - UIPopoverController
Na iOS11 wydaje się być całkowicie złamana
- Kliknięcie poza rozwijanych aby odwoływać bez wybierania opcji powoduje w popover zamykane i natychmiast ponownie przedstawiane czasami pusty
- gdy więcej niż jedną kroplę w dół na stronie rozwijanej dla nowej listy znajdują się elementy z poprzedniej listy
- Po wybraniu drugiego menu rozwijanego, pierwszy ponownie otwiera się
- Okazjonalnie rozwijane pojawia się w lewym górnym rogu (prawdopodobnie utracono jego widok źródłowy)
- Powyższe kroki bardzo sporadycznie powodować następującym wypadku:
2017-09-23 09: 43: 13,190728 + 0100 Web [1779: 86622] * Zakończenie aplikację spowodowane nieprzechwyconego wyjątku „NSInternalInconsistencyException ', powód: ' UITableView dataSource nie jest ustawiony ' * Stos wywołań pierwszego rzutu: (0 CoreFoundation 0x000000010d4a01cb exceptionPreprocess + 171 1 libobjc.A.dylib
0x000000010c8bbf41 objc_exception_throw + 48 2 CoreFoundation
0x000000010d4a5362 + [NSException przebicie: format: argumenty] + 98 3
założenia 0x000000010c360089 - [NSAssertionHandler handleFailureInMethod: obiekt: Plik: LineNumber: Opis:] + 193 4
UIKit 0x000000010da742f5 - [UITableView _createPreparedCellForGlobalRow: withIndexPath: willDisplay:] + 1756 5 UIKit 0x000000010da7451a - [UITableView _createPreparedCellForRowAtIndexPath: willDisplay:] + 81 6 UIKit 0x000000010da82137 - [UITableView _heightForRowAtIndexPath:] + 208 7
UIKit 0x000000010dd2b939- [UISectionRowData heightForRow: inSection: canGuess:] + 259 8 UIKit 0x000000010dd31c1a - [UITableViewRowData heightForRow: inSection: canGuess: adjustForReorderedRow:] + 277 9
UIKit 0x000000010dd36230 - [UITableViewRowData ensureHeightsFaultedInForScrollToIndexPath: withScrollPosition: boundsHeight:] + 964 10 UIKit 0x000000010da51110 - [UITableView _contentOffsetForScrollingToRowAtIndexPath: atScrollPosition: usingPresentationValues:] + 2783 11 UIKit 0x000000010da51b8f - [UITableView _scrollToRowAtIndexPath: atScrollPosition: animowane: usingPresentationValues:] + 146 12 UIKit 0x000000010da51a11 - [UITableView scrollToRowAtIndexPath: atScrollPosition: animowane:] + 123 13 UIKit 0x000000010de72d11 - [UIWebSelectTableViewController viewWillAppear:] + 247 14 UIKit 0x000000010dabe9b0 - [UIViewController _setViewAppearState: isAnimating:] + 444 15 UIKit 0x000000010dabf245 - [UIViewController __viewWillAppear:] + 147 16 UIKit 0x000000010da8b881 __56- [UIPresentationController runTransitionForCurrentState] _block_invoke + 1088 17 UIKit
0x000000010d926c61 _runAfterCACommitDeferredBlocks + 318 18 UIKit
0x000000010d91530d _cleanUpAfterCAFlushAndRunDeferredBlocks + 280 19 UIKit 0x000000010d945600 _afterCACommitHandler + 137 20 CoreFoundation 0x000000010d442db7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 23 21 CoreFoundation 0x000000010d442d0e __CFRunLoopDoObservers + 430 22 CoreFoundation 0x000000010d427324 __CFRunLoopRun + 1572 23 CoreFoundation
0x000000010d426a89 CFRunLoopRunSpecific + 409 24 GraphicsServices
0x00000001124c89c6 GSEventRunModal + 62 25 UIKit
0x000000010d91ad30 UIApplicationMain + 159 26 przydatny
0x000000010bfb014f główny + 111 27 libdyld. dylib
0x0000000110df1d81 start + 1 28 ???
0x0000000000000001 0x0 + 1 '
stworzyłem przykładową aplikację z jednej linii kodu, który demonstruje problem:
https://github.com/AshRobinson/BrokenUIWebView
Czy ktoś ma obejście takiej emisji ? Migracja do WKWebview
nie jest dla nas opcją na tym etapie.
Czy istnieje sposób na wymuszenie na iPadzie korzystania z wersji UIPickerView
dla rozwijanych na iPhone'a tymczasowo?
ja badali sugestie na innych stanowiskach przepełnienia stosu bez powodzenia, na przykład:
ios 11 Beta 5 select drop-down list issue
Mając ten sam problem. Nie ma jeszcze rozwiązania. –