2009-09-29 14 views

risposta

7

Secondo il UIView documentation:

Prima di iPhone OS 3.0, UIView istanze possono avere un'altezza massima e larghezza di 1024 x 1024. In iPhone OS 3.0 e versioni successive , viste non sono più limitati a questa dimensione massima ma sono ancora limitati dalla quantità di memoria che consumano. Pertanto, è nel tuo interesse per mantenere le dimensioni di il più piccole possibile. Indipendentemente da di quale versione di iPhone OS è in esecuzione, dovresti considerare l'utilizzo di un oggetto CATiledLayer se hai bisogno di creare dimensioni maggiori di 1024 x 1024 dimensioni.

In realtà, sono stato in grado di creare UIViews e CALAYers di dimensioni 2048 x 2048 su un iPhone/iPhone 3G standard in 2.x. Qualcosa di sopra di questo ha semplicemente fermato il rendering.

+0

Grazie come sempre Brad. Esaminerò CATiledLayer. Uno dei pezzi rimanenti di Cocoa che non sono chiaro è quando dovrei implementare a livello di CALayer e quando dovrei rimanere al livello più alto di UIView. Hai qualche intuizione qui? Grazie, Doug. – dugla

+0

Per quanto riguarda le prestazioni, sono all'incirca uguali. È possibile eseguire animazioni più avanzate con CALayer, ma è possibile eseguirle solo con il supporto CALayer di un UIView. Il motivo principale che ho riscontrato è il codice multipiattaforma per Mac-iPhone, poiché l'API di CALayer è praticamente identica tra le due piattaforme. Per ulteriori informazioni, vedere le risposte a questa domanda: http://stackoverflow.com/questions/1447598/when-to-use-calayer-on-the-mac-iphone –

+0

ho avuto alcuni problemi nel tentativo di rendere una grande gerarchia di WKWebView a un UIImmagine che utilizza contesti, infine se si utilizza un formattatore di stampa ha funzionato impostando le dimensioni della pagina in base alla dimensione che volevo rendere, solo nella prima pagina .. –

1

Non so che c'è un limite specifico. Ho creato UIScrollViews che sono centinaia di pagine in larghezza senza alcun problema. Hai provato e problemi?

Paul

+0

Mi chiedo in merito alle dimensioni massime in pixel per il contentView che una scrollView scorre/zooma. Qual era la dimensione in pixel delle pagine che hai usato? – dugla

+1

Sto lavorando ad un'app per lettori di libri. Alcuni libri hanno diverse centinaia di pagine, quindi 320 x 700 == 224000. Quello che sto dicendo è che non ho visto un limite pratico. Non penso che prealloca la memoria o altro. –

0

Non vorrei che ci sia un limite immaginabile. Dal momento che le dimensioni sono memorizzate come galleggianti, la mia ipotesi sarebbe che è limitato a CGFLOAT_MAX che è così grande che non c'è bisogno di preoccuparsi di esso.

+0

Barry, la mia preoccupazione è la creazione di istanze di un UIView - sottoclasse di - che supera un limite fisso. Forse la dimensione del framebuffer dal momento che il rendering dell'hardware sta accadendo sotto il cofano per tutto su i (Phone | Pod). – dugla

Problemi correlati