Anfänger: Probleme mit UIWebView und Subviews

  • Anfänger: Probleme mit UIWebView und Subviews

    Hi Leute,

    bin gerade dabei mein erstes iPhone-Programm zu schreiben.

    Ich möchte einen Full-Screen Browser haben, der eine normale Webseite lädt, und unten noch
    einen Button, der eine Aktion auslöst und immer mit einer Deckkraft von etwa 70% auf der Seite
    schwimmt.

    Irgendwie zeigt der mir aber Subviews nicht an. Oder ich hab was nicht verstanden ;) (davon gehe ich aus!).

    Mein Code sieht zZ so aus:

    Quellcode

    1. [application setStatusBarHidden:YES];
    2. [window makeKeyAndVisible];
    3. CGRect rectangle = CGRectMake(0,0,320,400);
    4. UIWebView *browser = [[UIWebView alloc] initWithFrame: rectangle];
    5. [window setContentView:browser];
    6. NSURL *url = [[NSURL alloc] initWithString: @"http://www.osxentwicklerforum.de/"];
    7. NSURLRequest *urlRequest = [[NSURLRequest requestWithURL: url] retain];
    8. [browser loadRequest: urlRequest];
    9. CGRect rectangle2 = CGRectMake(320,400,320,480);
    10. UIView *buttonView = [[UIView alloc] initWithFrame: rectangle2];
    11. [window addSubview:buttonView];
    12. //Button in den Subview setzen und anzeigen lassen?!
    Alles anzeigen
    Nun habe ich auch das Problem, dass die Statusbar zwar nicht angezeigt wird, aber da wo sie normalerweise ist, kann man keine Links anklicken, diese Fläche ist sozusagen tot...
    Wie bekomme ich außerdem diesen Button in den unteren Teil des Screens?
    Habe mir die Doku zu NSView durchgelesen aber finde nicht die richtigen Methoden :(

    Freue mich über jede Hilfe! :)
  • RE: Anfänger: Probleme mit UIWebView und Subviews

    Original von Jaxx0r
    Hi Leute,

    bin gerade dabei mein erstes iPhone-Programm zu schreiben.


    Irgendwie zeigt der mir aber Subviews nicht an. Oder ich hab was nicht verstanden ;) (davon gehe ich aus!).

    Mein Code sieht zZ so aus:

    Quellcode

    1. CGRect rectangle = CGRectMake(0,0,320,400);
    2. CGRect rectangle2 = CGRectMake(320,400,320,480);

    Der Ursprung des zweiten Rechteckes liegt auf dem Eckpunkt des ersten.
    Du siehst nichts, weil es außerhalb liegt.
    I would be embarrassed if they did not spy on me.
  • RE: Anfänger: Probleme mit UIWebView und Subviews

    Hallo Jaxx0r,

    Auf die schnelle:
    1. Dein Button ist viiiiiiiiiiiiiiiel zu groß
    2. Origin.x liegt auf dem rechten Rand des Frames vom superView und damit der ganze Button außerhalb (schau mal in die Doku zu CGRectMake( ), Du gibst hier nicht die Ränder an!). D.h. Origin (der Ursprung) muss innerhalb des Displays liegen.
    3. Wenn Du einen Button haben willst, musst Du ihn als Button deklarieren (UIButton). Da ein UIButton auch ein UIView ist, hat er auch die Eigenschaften eines UIViews und kennt dessen Methoden.
    4. Nebenbei fehlen noch Releases auf das WebView und den Button (guck' mal in die Doku zu addSubview: )
    5. Um den Button dann teilweise transparent zu bekommen, sind "alpha" und "opaque" Deine Freunde ) - ein paar andere Eigenschaften wie z.B. title und ein action solltest Du auch noch setzen. Schließlich soll ja der Button beim Drücken ja auch was machen, und nicht nur gehilightet werden...
    6. Der Button-Type muss übrigens beim Initialisieren eingestellt werden. Da dieser später nicht mehr geändert werden kann, solltest Du den Button per buttonWithType: generieren:

    Quellcode

    1. UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    Aber Vorsicht: das ist ein Convinience-Allocator und bringt ein Autorelease mit.

    Gruss, Jörg