Voglio ottenere l'origine di scrollView nel sistema di coordinate di finestra. Ad esempio, attualmente, l'origine di scollView è (0,51). Ma nel sistema di coordinate delle finestre dovrebbe essere 51 + 44 (altezza barra di navigazione) +20 (altezza barra di stato) = 115. Mezzi nel sistema di coordinate della finestra, scrollView.frame.origin deve essere (0,115). Ho provato con convertPoint: metodi ma ottenendo (0,51) o (0,0) a volte. Si prega di fornire una soluzione a questo. GrazieConvertire un punto di origine di UIView nel suo sistema di coordinate di finestra
risposta
Ho provato con la soluzione TechZen ma senza risultato. Invece di convertire l'origine di scrollView, ho fatto riferimento a Apple docs UIWindow class Reference e convertito l'endCenter della tastiera nel sistema di coordinate della mia vista usando questo codice [self.view convertPoint:endCentre fromView:[UIApplication sharedApplication].keyWindow]
. Questo pezzo di codice ha funzionato e quindi risolto il mio problema. Tuttavia, rimane la domanda sul motivo per cui non fornisce le coordinate corrette di scrollView.origin.So, fondamentalmente ho trovato una soluzione alternativa convertendo tastiera endcenter invece di scrollView.origin. Oh, stavo facendo tutte queste cose per calcolare la nuova altezza della mia scrollView quando la tastiera appare sullo schermo. Quindi, se qualcuno ha una soluzione a questo problema o una soluzione migliore, per favore fateci sapere a tutti noi.
Sembra che tu non ti converta tra le viste corrette. cornice di una vista è impostato le coordinate di è superview, non le sue coordinate interne, quindi se state tentando di convertire l'origine di una vista alle coordinate della finestra, si avrebbe bisogno di utilizzare il superview:
[[self superview] convertPoint:self.frame.origin toView:theWindow];
Tuttavia , è ancora più semplice convertire il punto zero dalla vista stessa alla finestra. Le due parti di codice sono equivalenti e quindi non è necessario utilizzare l'origine.
[self convertPoint:CGPointZero toView:theWindow];
I ho provato questo codice pezzo di codice nel metodo viewDidLoad, con self sostituito da self.view e theWindow sostituito da self.view.window, ma sta dando (0,0) come output – Nishit
Vorrei verificare che la proprietà della finestra della vista non è niente. Lo è spesso. – TechZen
Grazie per la risposta. Come affrontare questo problema. Ho provato a sostituire self.view.window con [UIApplication sharedApplication] .keywindow ma inutilmente. – Nishit
Si noti che queste funzioni funzioneranno solo dopo che il controller della vista ha terminato la visualizzazione delle sottoview. Quindi, se volete che quando vista dei carichi, è possibile utilizzare viewDidLayoutSubviews/viewDidAppear, ma non in viewDidLoad/viewWillAppear ecc ...
Questo codice ha funzionato per me:
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
CGPoint originInSuperview = [self.view.superview convertPoint:CGPointZero fromView:self.scrollView];
}
Swift 2.1:
In viewDidAppear (altrimenti gli elementi non sono ancora a strati) del vostro ViewController:
var yourFrame = yourScrollView.convertRect(yourScrollView.frame, toView: self.view)
//PRINT THE WHOLE RECT
print(yourFrame)
//PRINT A DETAILED VERSION OF THE FRAME, ALSO CAN PERFORM CALCULATION BETWEEN THE RECT PARAMETERS TO GET , FOR EXAMPLE, WIDTH POINT IN THE SUPERVIEW:
print("X: \(yourFrame.origin.x) Y: \(yourFrame.origin.y) WIDTH: \(yourFrame.width) HEIGHT: \(yourFrame.height)")
In Swift 3: var yourFrame = yourScrollView.convertRect (yourScrollView.frame, to: self.view) – Medhi
- 1. Come convertire il sistema di coordinate frame di SubView nel sistema di coordinate Self View
- 2. Sistema di coordinate della core core
- 3. Come ottenere le coordinate di un punto in un sistema di coordinate in base all'angolo e alla distanza
- 4. Sistema di coordinate n-sfera a sistema di coordinate cartesiane
- 5. Modifica griglia sistema di coordinate
- 6. Come verificare se un punto (x, y) si trova all'interno di un poligono nel sistema di coordinate cartesiane?
- 7. Cornice, limiti, centro, origine di UIView quando usare cosa?
- 8. Come ruotare il sistema di coordinate?
- 9. Come si capovolge il sistema di coordinate di un NSView?
- 10. Modifica del valore CGrect nel sistema di coordinate utente
- 11. Ricerca di coordinate di un punto in OpenLayers
- 12. Qual è l'unità del sistema di coordinate della tela? - android
- 13. Convertire NSPoint a schermo coordinate per la finestra coordinate
- 14. Come trovare le coordinate di UICollectionViewCell relative alla finestra dell'applicazione
- 15. Sistema di riferimento di coordinate non riconosciuto in gvNIX
- 16. Come convertire un punto di vista GeoPoint in un punto dello schermo dell'hardware
- 17. Perché il software utilizza spesso un sistema di coordinate inverse rispetto al normale sistema di coordinate matematiche?
- 18. Perché il sistema di coordinate PyGame ha la sua origine nell'angolo in alto a sinistra?
- 19. informazioni sull'immagine lungo un sistema di coordinate polari
- 20. Come impostare QGraphicsScene/Visualizza su un sistema di coordinate specifico
- 21. iPhone: Scala UIView su un punto specifico
- 22. Come convertire un carattere ASCII nel suo valore int ASCII?
- 23. Finestra di dialogo Qt senza icona finestra (menu di sistema)
- 24. come riavviare un metodo dal suo ultimo punto di errore
- 25. Convert String al suo punto di codice Unicode
- 26. Seleziona le coordinate che rientrano nel raggio di un punto centrale?
- 27. Come compensare il sistema di coordinate capovolte della grafica di base per un disegno facile?
- 28. Come ruotare un'icona di Android sul suo punto centrale?
- 29. Converti latitudine e longitudine in sistema di coordinate ECEF
- 30. flip svg coordinate sistema
versione Swift basso –