Transparentes UIWebView?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Transparentes UIWebView?

    Hat es schon jemand geschafft, ein transparentes UIWebView zu erzeugen?

    Der Tip hier osxentwicklerforum.de/thread.p…267&hilight=transparentes funktioniert auf dem iPhone/iPod leider nicht, da es die "private" Methode setDrawsBackground: beim UIWebView leider nicht gibt.

    Vielleicht lässt sich mein Vorhaben ja auch komplett mit HTML und einem "Standard" UIWebView lösen, jedoch reicht mein HTML/CSS dafür nicht aus. ;(

    Ich möchte einen Text mit variabler Länger mit einem Bild als Hintergrund anzeigen. Der Hintergrund soll jedoch:

    a) fixiert sein, so dass sich nur der Text auf diesem fixierten Hintergrund scrollen lässt oder
    b) sich automatisch in der Größe (Länge) an die Länge des Textes anpassen

    Hat vielleicht jemand eine Lösung für ein transparentes UIWebView oder lässt sich eine der o.a. Anforderungen gar per HTML/CSS lösen?

    Da ich den Inhalt des UIWebView im Programm erzeuge und aktuell mit loadHTMLString:baseURL: in den UIWebView schiebe, könnte ich den HTML-Code beliebig anpassen, wenn dies für eine Lösung per HTML/CSS nötig wäre.
  • RE: Transparentes UIWebView?

    Original von MCDan
    Ich möchte einen Text mit variabler Länger mit einem Bild als Hintergrund anzeigen. Der Hintergrund soll jedoch:

    a) fixiert sein, so dass sich nur der Text auf diesem fixierten Hintergrund scrollen lässt oder
    b) sich automatisch in der Größe (Länge) an die Länge des Textes anpassen

    Ohne es probiert zu haben behaupte ich mal daß das mit einem eigenen UITextView eine triviale Angelegenheit sein sollte.
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • RE: Transparentes UIWebView?

    Original von seb2
    Original von MCDan
    Ich möchte einen Text mit variabler Länger mit einem Bild als Hintergrund anzeigen. Der Hintergrund soll jedoch:

    a) fixiert sein, so dass sich nur der Text auf diesem fixierten Hintergrund scrollen lässt oder
    b) sich automatisch in der Größe (Länge) an die Länge des Textes anpassen

    Ohne es probiert zu haben behaupte ich mal daß das mit einem eigenen UITextView eine triviale Angelegenheit sein sollte.

    Aktuell habe ich es ja mit einem UITextView gelöst, jedoch hätte ich den Text gerne etwas mit diversen Text Styles (Bold, Italic, großer/kleiner Font) aufgeppt, was leider mit UITextView nicht funktioniert und man laut Apple dafür einen UIWebView verwenden soll.

    Ich habe jetzt auch schon eine Lösung per HTML/CSS im Netz gefunden, nur kann der UIWebView als auch Safari auf dem iPhone/iPod damit (noch) nicht umgehen, obwohl es mit Safari 3.1.1 unter Mac OS X problemlos funktioniert. ;(

    Da heisst es dann wohl warten, bis das iPhone SDK den Final Status erreicht oder eine entsprechende CustomClass schreiben, die Text mit diversen TextStyles anzeigen kann.
  • RE: Transparentes UIWebView?

    Nach ein paar Versuchen, habe ich jetzt die Lösung b) per HTML mit CSS realisieren können.

    Leider entsteht bei der Verwendung eines UIWebView jetzt ein Problem, welches nicht sehr schön aussieht.

    Ich verwende zum Anzeigen der UIWebViews eine Transition wie sie z.B. im Sample Code ViewTransitions verwendet wird. Leider zeichnet sich der UIWebView erst, wenn die Transition beendet ist, obwohl ich den Inhalt bereits vorher per loadHTMLString:baseURL: gesetzt habe. D.h. es wird ein komplett weisses UIWebView für die Transition verwendet, welches erst nach Beendigung der Transition korrekt gezeichnet wird.

    Da ich die erzeugten UIWebViews abwechselnd verwende tritt der Effekt mit dem komplett weissen UIWebView nur bei der ersten Verwendung des UIWebView auf. Bei der nächsten Verwendung desselben UIWebViews wird jedoch der alte Inhalt für die Transition verwendet und auch hier erst nach Beendigung der Transition korrekt gezeichnet.

    Wie kann ich das UIWebView dazu bringen sich vor der Transition korrekt zu zeichnen, damit der richtige Inhalt bereit für die Transition zur Verfügung steht und nicht erst danach.

    Alternativ wollte ich das UIWebView in ein UIImage rendern, um dieses zu verwenden, habe jedoch keine Möglichkeit gefunden, wie sich ein UIWebView in ein UIImage oder BitmapContext rendern lässt.
  • Original von seb2
    Hat der WebView denn überhaupt schon den Inhalt geladen und gerendert, wenn Du versuchst, das anzuzeigen? Nicht daß das daran liegt.


    Ich hoffe mal, dass:

    Quellcode

    1. [webView loadHTMLString:html baseURL:baseURL];
    2. while (webView.loading);
    funktioniert, um den Inhalt zu laden.

    Allerdings weiss ich nicht, wie ich das WebView dazu veranlassen sich zu renden. Ein simples

    Quellcode

    1. [webView setNeedsDisplay];
    bringt leider nichts. X(
  • Mit sowas hatte ich vor langer Zeit in Cocoa mal Ärger. -- Mal versucht, Dich ans

    Quellcode

    1. - (void)webViewDidFinishLoad:(UIWebView *)webView

    des Delegate zu hängen?
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");