pdf zur Laufzeit

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

  • pdf zur Laufzeit

    Hallo,

    ich habe jede Menge Images als pdf, die ich erst zur Laufzeit bekomme.
    Habe das mal für einen Test "fest verdrahtet"

    C-Quellcode

    1. return [UIImage imageNamed:@"rechts30.pdf"];
    Das funktioniert schon mal nicht. Datei existiert (habe ich überprüft ) gibt aber nil zurück ?(

    geht das überhaupt irgendwie?
    Ich habe auch keine Loesung, aber ich bewundere das Problem!
    _____________________________________________________


    Hape42
  • C-Quellcode

    1. UIImage *icon = [UIImage imageWithContentsOfFile:iconPathInCache];
    Printing description of iconPathInCache:
    /Users/hape42/Library/Developer/CoreSimulator/Devices/35686F7D-EFB6-4A9E-B85C-8B968EF8782D/data/Containers/Data/Application/0EADDC47-8863-4FEC-8B1C-28A6A26D3E75/Library/Caches/rechts30.pdf

    Bildschirmfoto 2018-03-14 um 12.38.48.png rechts30.pdf

    hab ich nachgeprüft, file existiert auch wirklich an der Stelle!
    und trotzdem ist icon nil ?(
    Ich habe auch keine Loesung, aber ich bewundere das Problem!
    _____________________________________________________


    Hape42
  • Wenn Du die PDFs direkt im Asset Catalog verwendest, dann macht Xcode beim Build daraus PNGs in den passenden Auflösungen.

    Da Du die PDFs ja anscheinend erst zu Laufzeit der App bekommst, musst Du diese per Code in Images umwandeln, da UIImage kein PDF unterstützt,

    Dafür scheint es bereits Lösungen auf GitHub zu geben z.B. UIImage-PDF.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MCDan ()

  • ok verstanden (glaube ich <X )

    dann bringt an der Stellerin Image als pdf nicht wirklich Vorteile wenn es eh in ein png umgewandelt werden muss.

    Habe da noch einen Zusatzfrage:
    Wenn ich png im Format 30x30 von einem Server hole und im Cache ablege , dann zB in einem Button anzeige, wird je nach Endgerät das sicher "groß gezogen".
    Schaut IOS "automatisch" nach, ob es ein @2 oder @3 gibt und zieht sich dann die bessere Auflösung "automatisch"?

    Oder kann ich so ein png zB 100x100 erstellen und IOS skaliert das automatisch "runter"?

    das alles wollte ich eigentlich mit den pdf umgehen, war aber wohl ein Holzweg.
    Ich habe auch keine Loesung, aber ich bewundere das Problem!
    _____________________________________________________


    Hape42
  • Schau Dir doch mal PaintCode an. Die App habe ich jetzt schon in zwei Projekten verwendet, um Icons/Grafiken für die verschiedenen Geräteauflösungen zu unterstützen.

    Klappt wunderbar und die App wird auch noch kleiner da die einzelnen PNGs für die Geräteauflösungen durch Programmcode getauscht werden. ;)

    Da Du die Icons/Grafiken anscheinend vom Server lädst, würde ich nur die für das Device passenden Auflösungen laden. Du kannst beim Download also direkt die passende Grafik wählen oder z.B. einen Parameter an ein PHP oder sonstiges Skript übergeben, welches dann die Grafik in der dazu passende Auflösung zurück liefert.
  • MCDan schrieb:


    Da Du die Icons/Grafiken anscheinend vom Server lädst, würde ich nur die für das Device passenden Auflösungen laden. Du kannst beim Download also direkt die passende Grafik wählen oder z.B. einen Parameter an ein PHP oder sonstiges Skript übergeben, welches dann die Grafik in der dazu passende Auflösung zurück liefert.
    Und vom Backup ausschließen falls das nicht automatisch geschieht.
    Sonst hat man eventuell auf einem neuen gerät die icons für die alte screen-auflösung.
  • gritsch schrieb:

    Und vom Backup ausschließen falls das nicht automatisch geschieht.Sonst hat man eventuell auf einem neuen gerät die icons für die alte screen-auflösung.

    Er speichert die Dateien ja anscheinend im Caches Verzeichnis. Somit sollten diese vom Backup ausgeschlossen sein.

    @hape42: BTW Das Caches Verzeichnis kann bei Platzbedarf auf dem Gerät von iOS gelöscht werden. Du solltest Du Dateien also nicht nur beim ersten Start der App laden, sondern immer dann, wenn sie nicht vorhanden sind. Alternativ einfach in ein anderes Verzeichnis legen und ggf. dann vom Backup ausschließen.