2016-05-16 8 views
0

In meiner App verwende ich UICollectionView, um die Rasteransicht für benutzerdefinierte Zellen anzuzeigen, die Bild und Text enthalten. Um alle Bildschirmgrößen zu unterstützen, habe ich IUICollectionViewDelegateFlowLayout Delegate GetSizeForItem Methode überschrieben. Alles funktioniert gut von iOS 8.1 bis 9.2 (Getestet auf Simulator und Gerät). Für iOS 9.3 wird die Simulatorrasteransicht korrekt gerendert. Aber sobald ich den Bildschirm rotiere, stürzt er mit folgendem Fehler ab:Xamarin.iOS UICollectionView App stürzt ab, wenn das Gerät für iOS 9.3 gedreht wird

Objective-C exception thrown. Name: NSInvalidArgumentException Reason: -[NSNull length]: unrecognized selector sent to instance 0x9065398 Native stack trace: 0 CoreFoundation
0x08e38494 exceptionPreprocess + 180 1 libobjc.A.dylib
0x091abe02 objc_exception_throw + 50 2 CoreFoundation
0x08e42253 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275 3
CoreFoundation 0x08d7789d ___forwarding_
+ 1037 4 CoreFoundation 0x08d7746e _CF_forwarding_prep_0 + 14 5 CoreFoundation 0x08cf0cdb CFStringCompareWithOptionsAndLocale + 203 6 Foundation
0x00da5770 -[NSString compare:options:range:locale:] + 175 7
Foundation 0x00da56b9 -[NSString compare:options:range:] + 72 8 Foundation
0x00dab7f2 -[NSString caseInsensitiveCompare:] + 81 9 UIKit
0x0156e021 -[UIPhysicalKeyboardEvent _matchesKeyCommand:] + 357 10 UIKit 0x0147035e -[UIResponder _keyCommandForEvent:target:] + 446 11 UIKit 0x01470531 -[UIResponder _keyCommandForEvent:target:] + 913 12 UIKit 0x0147019b -[UIResponder _keyCommandForEvent:] + 48 13 UIKit
0x0123e287 -[UIApplication handleKeyHIDEvent:] + 380 14 UIKit
0x0121234d _UIApplicationHandleEventQueue + 6743 15 CoreFoundation
0x08d4ae5f CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 15 16 CoreFoundation 0x08d40aeb __CFRunLoopDoSources0 + 523 17 CoreFoundation 0x08d3ff08 __CFRunLoopRun + 1032 18 CoreFoundation
0x08d3f846 CFRunLoopRunSpecific + 470 19 CoreFoundation
0x08d3f65b CFRunLoopRunInMode + 123 20 GraphicsServices
0x09b3f664 GSEventRunModal + 192 21 GraphicsServices
0x09b3f4a1 GSEventRun + 104 22 UIKit
0x01218eb9 UIApplicationMain + 160 23 ???
0x18c98020 0x0 + 415858720 24 ???
0x18c97e18 0x0 + 415858200 25 ???
0x18c95f98 0x0 + 415850392 26 ???
0x18c95cd4 0x0 + 415849684 27 ???
0x18c95e60 0x0 + 415850080 28 libmonosgen-2.0.dylib
0x088cee81 mono_jit_runtime_invoke + 705 29 libmonosgen-2.0.dylib
0x08a7e0af mono_runtime_invoke + 127 30 libmonosgen-2.0.dylib
0x08a82f71 mono_runtime_exec_main + 401 31 libmonosgen-2.0.dylib
0x08a82d35 mono_runtime_run_main + 629 32 libmonosgen-2.0.dylib
0x0893ac8d mono_jit_exec + 93 33 TutorMeNot.iOS
0x001ff440 xamarin_main + 2384 34 TutorMeNot.iOS
0x001da5a1 main + 113 35 libdyld.dylib
0x0a62ca25 start + 1 36 ???
0x00000003 0x0 + 3

Antwort

0

Das Problem hängt nicht mehr mit dem Code zusammen. Hier sind meine Beobachtungen, die mein Problem gelöst haben.

Ich verwende TabBarController. In einer der Registerkarte verwende ich UICollectionView mit benutzerdefinierter Zelle. Wenn ich App auf dem iOS 9.3-Simulator ausführe, wurde meine Sammlungsansicht korrekt angezeigt.

So drehen Sie den Simulator Tastaturkürzel "Befehl + Pfeil" wird verwendet. Sobald ich den Befehl gedrückt habe, ist es abgestürzt. Aber wenn ich Simulator mit Hardware -> Drehen Optionen-Menü drehen, hat es gut funktioniert.

Auch ich habe dies auf iPod-Gerät (iOS V9.3.2) getestet und funktionierte perfekt. Zu Testzwecken habe ich eine Beispiel-UICollectionView-App mit Objective-C erstellt. Wenn ich dieses Beispiel auf dem iOS 9.3-Simulator gebaut und ausgeführt habe, funktionierte es ohne Absturz bei der Bildschirmdrehung.

Hope Xamarin Team wird nach diesem Problem suchen.

Verwandte Themen