2016-03-11 12 views
5

Sto lavorando a un'app dinamica in cui ottengo valori CGRect separatamente (x, y, larghezza, altezza) da un servizio Web per ciascuno degli oggetti dell'interfaccia utente all'interno di una vista.Come convertire il frame in base alle dimensioni dello schermo del dispositivo?

Sul server, impostano i frame in base alla seguente dimensione (1080 x 1920), quindi diciamo, se otterrò un CGRect con i seguenti valori: (200, 20, 100, 100), allora dovrebbe essere in forma nel dispositivo in base alle dimensioni del dispositivo e alle dimensioni specificate del server.

  1. Così con il caso di iPhone 5 - nuovo telaio sarà uguale a 200, 20, 100, 100.

  2. Così con il caso di iPhone 6 (375 x 667) - nuovo telaio sarà ?

  3. Quindi con il caso di iPhone 6+ (414 x 736) - sarà il nuovo telaio?

La cosa più importante è che, qualunque sia la cornice sarà ricevuto in app per un particolare oggetto dell'interfaccia utente, che dovrebbe essere appare esattamente come nel pannello di amministrazione appositamente per i margini.

Per una nota,

Sto installando UI con layout automatico solo in Storyboard.

Qualche suggerimento?

Questo è un esempio:

Esempio 1:

| _________________ | 
| |     | | 
| |     | | 
| |     | | 
| |     | | 
| |_________________| | 
|      | 

Esempio 2:

|   _________ | 
|   |   | | 
|   |   | | 
|   |   | | 
|   |   | | 
|   |_________| | 
|      | 

Per esempi precedenti, sto cercando di spiegare che, per qualunque telaio sarà proveniente dal server, se questo sembra come sopra sul server, il simile sarebbe sul dispositivo, ma dovrebbe essere basato sul dispositivo CGRect.

+0

Hai una larghezza e altezza fissa, 100x100? – Vasanth

+0

Sarà deciso dall'amministratore del server. Stiamo progettando di fornire una schermata (anteprima dello schermo di iPhone 5) in cui l'amministratore può regolare e ridimensionare qualsiasi oggetto. – Hemang

+0

È chiaro tutto sulla dimensione del lavoro degli oggetti dello schermo in base alle dimensioni: - http://stackoverflow.com/questions/25892207/how-to-specify-size-for-iphone-6-customized-edge-to-edge-image –

risposta

1

È possibile utilizzare questi due metodi per ottenere server di e dispositivo specifica CGRect.

- (CGFloat) convertServerXorWidthValueToDeviceValueXorWidth:(CGFloat)sValue { 
    CGFloat currentWidth = [UIScreen mainScreen].bounds.size.width; 
    CGFloat value = ceilf((currentWidth * sValue)/1080); 
    return value; 
} 

- (CGFloat) convertServerYorHeightValueToDeviceValueYorHeight:(CGFloat)sValue { 
    CGFloat currentHeight = [UIScreen mainScreen].bounds.size.height; 
    CGFloat value = ceilf((currentHeight * sValue)/1920); 
    return value; 
} 

Spero che questo ti possa aiutare.

0

Direi che la cornice per iPhone 6 è (234, 23, 117, 117) e iPhone 6 Plus è (258, 25, 129, 129).

Come ho calcolato? Nuovo width = (vecchio width * nuova larghezza del dispositivo)/vecchio larghezza del dispositivo

(100 * 375)/320 = 117

stessa cosa per gli altri valori

Se i layout automatico utilizzando è necessario aggiornare i vincoli una volta ricevuti i nuovi valori.

2

Cambio del frame in base alle dimensioni e al rapporto dello schermo iPhone 4s, 5,6,6 +.

Qui avete bisogno di cambiare dimensioni della cornice dello schermo da ecco avete "fotogrammi in base a seguenti dimensioni (1080 x 1920)" significa che hai iPhone 6+ telaio ora vedere che muggito allegato set base di immagine sul aspetto rapporto.

1). Cornice iPhone 5 (200,20,100,100)
2). Cornice iPhone 6 (200,20,155,155)
3). Cornice iPhone 6+ (200,20,194,194)

enter image description here
Razione schermo con risoluzione dello schermo. Ottengo Da This Website. Screen ratio

imgur .com/7zi1q.png

+0

Grazie per la risposta mitul, come fare questo nel codice? Sono solo molto curioso di fare questo sviluppo all'interno della mia app. – Hemang

+0

Qui basta scaricare questa demo e provare a capire.Questa demo si basa sulla tua altezza e con base su aspect ratio.:-https://www.sendspace.com/file/09e7yo –

+0

Funziona correttamente: - https: // www.sendspace.com/file/09e7yo –

Problemi correlati