{"id":1045,"date":"2011-04-18T17:04:47","date_gmt":"2011-04-18T16:04:47","guid":{"rendered":"http:\/\/www.puls200.de\/?p=1045"},"modified":"2011-04-18T17:04:47","modified_gmt":"2011-04-18T16:04:47","slug":"ich-werd-langsam-zu-alt-fur-so-einen-mist","status":"publish","type":"post","link":"https:\/\/www.puls200.de\/?p=1045","title":{"rendered":"Ich werd langsam zu alt f\u00fcr so einen Mist ;-)"},"content":{"rendered":"<p>Ich schreibe hier nicht gern von meiner Arbeit. Mich versteht ja doch keiner. Aber manchmal ist es einfach zu schrill. Heute zum Beispiel fand ich einen wunderbaren Fehler leider erst nach \u00fcber zwei Stunden. iPad Anwendung. Folgende Situation:<br \/>\nIch habe ein UIView, das mit einer bestimmten Gr\u00f6\u00dfe initialisiert wird. In dieses View werden im Nachhinein dynamisch Subviews und Controls hinzugef\u00fcgt. Das View ist in einem SplitviewController eingebettet.<br \/>\nDamit das Ganze sch\u00f6n skaliert habe ich au\u00dferdem folgendes gemacht:<\/p>\n<div style=\"background: #ffffff; overflow:auto;width:auto;color:black;background:white;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%\">searchView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;\r\nsearchView.autoresizesSubviews = YES;<\/pre>\n<\/div>\n<p>und danach die Subviews hinzugef\u00fcgt. Wenn man die Anwendung startet sieht optisch alles gut aus, die Controls sind am richtigen Fleck. Aber das Event-Handling funktionierte nicht mehr. Ich habe wirklich alles ausprobiert, bis ich testweise einen Button hinzugef\u00fcgt habe. Dabei fiel mir auf, dass die Events doch ausgel\u00f6st wurden .. allerdings nur in einem sehr schmalen Streifen am oberen Ende des Button. Gottseidank habe ich \u00fcberall rumgeklickt ;-) Danach habe ich das Flag UIViewAutoresizingFlexibleHeight weggelassen und siehe da, alles funktioniert wie erwartet. Wie es scheint, wird der View tats\u00e4chlich flexibel skaliert, seine Kind-Elemente jedoch nicht. Skaliert wird nur der Bereich in dem Events ausgewertet werden. Wir haben also zwei Views, eins mit den tats\u00e4chlichen Controls und eins mit den Grenzen des Event-Handlings. Die andere Erkl\u00e4rung ist die, dass Kind-Elemente einfach aus ihrem Parent herausragen k\u00f6nnen. Was auch immer passiert war, es war nicht auf Anhieb zu erkennen. Eher so auf Siebt- oder Achthieb.<br \/>\nWas lernen wir daraus?<br \/>\n- \u00d6fter einchecken um funktionsf\u00e4hige von kaputten Sourcecodeteilen besser unterscheiden zu k\u00f6nnen<br \/>\n- sich von der Annahme verabschieden, alles m\u00fc\u00dfte so funktionieren wie man es sich gedacht hat<br \/>\n- manuelles Resizing muss in allen Ebenen der Viewhierarchie implementiert werden damit es zuverl\u00e4ssig funktioniert<br \/>\n- es ist verbl\u00fcffend wieviel Zeit man in API-Spezialskills investieren muss, die man hinterher auf keiner anderen Plattform mehr gebrauchen kann<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich schreibe hier nicht gern von meiner Arbeit. Mich versteht ja doch keiner. Aber manchmal ist es einfach zu schrill. Heute zum Beispiel fand ich einen wunderbaren Fehler leider erst nach \u00fcber zwei Stunden. iPad Anwendung. Folgende Situation: Ich habe &hellip; <a href=\"https:\/\/www.puls200.de\/?p=1045\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts\/1045"}],"collection":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1045"}],"version-history":[{"count":5,"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts\/1045\/revisions"}],"predecessor-version":[{"id":1050,"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts\/1045\/revisions\/1050"}],"wp:attachment":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}