Pencere koordinat sisteminde scrollView kaynağını almak istiyorum. Örneğin, şu anda, scollView kaynağı (0,51) 'dir. Ancak pencere koordinat sisteminde 51 + 44 (gezinti çubuğu yüksekliği) +20 (durum çubuğu yüksekliği) = 115 olmalıdır. Pencere koordinat sisteminde, scrollView.frame.origin (0,115) olmalıdır. ConvertPoint: yöntemlerini denedim ancak bazen (0,51) veya (0,0) aldım. Lütfen buna bir çözüm sunun. TeşekkürlerUIView başlangıç noktasını kendi Pencere koordinat sistemine dönüştürün
cevap
TechZen çözümüyle çalıştım ama boşuna. ScrollView'ın kökeni dönüştürmek yerine, bu belgeyi [self.view convertPoint:endCentre fromView:[UIApplication sharedApplication].keyWindow]
kullanarak Apple docs UIWindow sınıf başvurusuna başvurdum ve klavyenin endCenter'ını görünümümün koordinat sistemine dönüştürdüm. Bu kod parçası çalıştı ve bu yüzden problemimi çözdü. Ancak, soru hala scrollView.origin.So düzgün bir koordinat vermez olarak kalır, temelde scrollView.origin yerine klavye endcenter dönüştürerek bir geçici çözüm var. Oh, ve ekranın üstünde klavye görüntülendiğinde, scrollView'un yeni yüksekliğini hesaplamak için bütün bu şeyleri yapıyordum. Yani, eğer birisi bu soruna bir çözüm veya daha iyi bir çözümü varsa, lütfen hepimizin bilmesini sağlayın.
Doğru görünümler arasında dönüştürme yapmadığınız gibi geliyor. Ancak
[[self superview] convertPoint:self.frame.origin toView:theWindow];
: Bir görünümün çerçeve Eğer pencere koordinatlara bir görünüm kökenini dönüştürmek çalışıyormuş öyleyse, Superview kullanmanız gerekir, Superview değil kendi iç koordinatlar var koordinatlarına ayarlanır Sıfır noktasını, görünümden kendisini pencereye dönüştürmek daha da kolaydır. İki kod parçası eşdeğerdir ve bu nedenle menşei kullanmak kesinlikle gerekli değildir.
[self convertPoint:CGPointZero toView:theWindow];
ben self.view ve theWindow tarafından self.view.window tarafından değiştirilen self ile değiştirilen viewDidLoad yönteminde bu kod parçasını denedim, ancak – Nishit
çıktısını (0,0) olarak görüntülemenin pencere özelliğini kontrol ediyorum sıfır değil. Sık sık. – TechZen
Yanıtladığınız için teşekkür ederiz. Bu problemle nasıl baş edilir. Self.view.window'u [UIApplication sharedApplication] .keywindow ile değiştirmeyi denedim ama boşuna. – Nishit
Bu işlevlerin yalnızca denetleyicinin alt görünümleri düzenlemeyi bitirdikten sonra çalışacağını unutmayın. Yani görünüm yükler, sen ancak, viewDidLayoutSubviews/viewDidAppear kullanabilirsiniz zaman bunu istiyorum değilse de viewDidLoad/viewWillAppear vs ...
Bu kod benim için çalıştı:
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
CGPoint originInSuperview = [self.view.superview convertPoint:CGPointZero fromView:self.scrollView];
}
Swift 2.1:
viewDidAppear yılında(aksi elemanları katmanlı henüz değildir) kendi ViewController ait:
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)")
Swift 3: da var yourFrame = yourScrollView.convertRect (sizinScrollView.frame, to: self.view) – Medhi
- 1. Enlem ve boylamı ECEF koordinat sistemine dönüştürün
- 2. Bir CGPoint'i bir UIView koordinat sisteminden bir CALayer koordinat sistemine dönüştürme
- 3. SubView'ın Çerçeve Koordinat Sistemini Self View'ın Koordinat Sistemine dönüştürme
- 4. CGAffineTransform için Başlangıç Noktasını Ayarlayın
- 5. uiview öğesini .png resmine dönüştürün
- 6. Pencere nesnesinde garip kendi nesnesi
- 7. UIView, görünümler arasındaki noktaları nasıl dönüştürür?
- 8. Kendi iletilerimi oluşturmak için socket.io'nun günlük kayıt sistemine nasıl bağlanırım?
- 9. bir koordinat
- 10. Bağlantı noktasını ayarladığımda, resim yüklenmiyor
- 11. bir kendi merkezi etrafında UIView ama birkaç kez
- 12. UIView,
- 13. UIView
- 14. Kendi türünüz için serbest başlangıç / bitiş işlevleri nasıl sağlanır
- 15. Swift Error: Kendi başlangıç değeri içinde kullanılan değişken
- 16. İki koordinat sistemi arasında dönüş matrisi nasıl bulunur?
- 17. n-küre koordinat sistemi için Kartezyen koordinat sistemi
- 18. Koordinat dizesini float
- 19. Koordinat küçültme python
- 20. ecef koordinat dönüşümü
- 21. AEM'den dosya sistemine erişin
- 22. Program aracılığıyla bir UIView
- 23. PyGame koordinat sistemi kökeninin sol üst köşesinde neden var?
- 24. Angularjs ve SAML, başlangıç
- 25. Matlabda sınırlama kutusu koordinat ölçümü
- 26. Koordinat çiftleri için SciPy interp2D
- 27. UIView: layoutSubviews vs initWithFrame
- 28. Resimden form sistemine dosya yükleme
- 29. Chrome Extension Dosya sistemine yaz
- 30. Bir UIView
Swift versiyonu aşağı aşağıda –