Posts mit dem Label MonoTouch werden angezeigt. Alle Posts anzeigen
Posts mit dem Label MonoTouch werden angezeigt. Alle Posts anzeigen

Donnerstag, 11. August 2011

Builderror bei MonoTouch-Projekten mit EGOPhotoViewController

In einem aktuellen MonoTouch-Projekt habe ich für die Anzeige einer Bildergalerie das kleine externe Framework EGOPhotoView/EGOPhotoViewController eingebunden. Nach der Implementierung konnte ich das Projekt nicht mehr kompilieren. Es kam im Output immer folgender Fehler:

Undefined symbols:
"__Unwind_Resume", referenced from:
+[EGOCache currentCache] in libPhotoViewerKitMobile.a(EGOCache.o)
-[EGOCache saveCacheDictionary] in libPhotoViewerKitMobile.a(EGOCache.o)
+[EGOImageLoader sharedImageLoader] in libPhotoViewerKitMobile.a(EGOImageLoader.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Process exited with code 1, command:

Abhilfe hat hier folgende Einstellung geschaffen:
- Projekteigenschaften öffnen
- Build => IPhone Build auswählen
- Im Reiter "General" die "Additional mtouch arguments" erweitern um -gcc_flags "-cxx -lgcc_eh"

Tipp:
Um erweiterte Ausgabemeldungen (Output) zu bekommen, muss man einfach in die arguments noch die Parameter -v -v -v aufnehmen.

Donnerstag, 14. Juli 2011

MonoTouch: UITextView mit zentriertem Inhalt bei der Bearbeitung

In einer IPhone-App hatte ich gerade das Problem, dass ich eine UITextView (Textbox) implementiert habe, die im Bearbeitungsmodus (nach Klick) immer den beinhalteten Text außerhalb des sichtbaren Bereichs verschoben hat. Das heißt, man musste jedes Mal scrollen um den Text zu sehen.

So sieht das ganze dann im Einsatz aus:

Dieses liegt daran, dass die UITextView standardmäßig einen unteren "Rahmen" von 32 Pixel einfügt. Da auch standardmäßig das Autoscrolling aktiv ist, wird immer die letzte Zeile fokussiert. Somit rutsch der eigentlich Inhalt/Text soweit nach oben, dass er nicht mehr sichtbar ist.

Abhilfe schafft hier die kleine Property "ContentInset".

Codebespiel:
UITextView textView = new UITextView(new RectangleF(10, 10, 280, 30));
textView.ContentInset = new UIEdgeInsets(0, 0, 0, 0);

Und so sieht das Ganze dann mit der gesetzten Property aus: