2009-05-22 13 views
5

, bir yatay yönde (UIInterfaceOrientationLandscapeRight) için ilk dikey yönlendirmeli sayfa yönünü değiştirin. Ama şimdi x, y orijin (0,0) alt-sol köşesinde (her zamanki gibi sol üst) ve her zaman koordinatları içeren bir şey yapmak istediğimde her zaman yeniden hesaplamak zorundayım. yeni koordinat sistemi. Ayrıca yeni koordinat sistemi içindeki görüşlerimin normal zamanlarda normal davranmadığını fark ettim. Yani, KEZ koordinat sistemini dönüştürmek için bir yol Ben sol üst köşede bir kökeni sahip olarak benim koordinatlar düşünmeye devam böylece ben, yönünü geçiş hemen sonra, var mı?Peyzaj Oryantasyon bir değişiklikten sonra koordinat sistemini dönüştürmek için bir yolu var mı? bir görünüm tabanlı iPhone OS uygulamasında

cevap

10

Bir döndürmek için ana görünümüne dönüştürmek uygulanması tavsiye edilen yaklaşım yaparsanız:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 
if (orientation == UIInterfaceOrientationLandscapeRight) 
{ 
    CGAffineTransform transform = primaryView.transform; 

    // Use the status bar frame to determine the center point of the window's content area. 
    CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame]; 
    CGRect bounds = CGRectMake(0, 0, statusBarFrame.size.height, statusBarFrame.origin.x); 
    CGPoint center = CGPointMake(60.0, bounds.size.height/2.0); 

    // Set the center point of the view to the center point of the window's content area. 
    primaryView.center = center; 

    // Rotate the view 90 degrees around its new center point. 
    transform = CGAffineTransformRotate(transform, (M_PI/2.0)); 
    primaryView.transform = transform; 
} 

o zaman bu ana görünümde eklediğiniz herhangi subviews standart koordinat sistemi kullanmalıdır. Ana görüşe uygulanan dönüşüm, alt raporların koordinatlarının da döndürülmesiyle ilgilenir. Bu benim uygulamada benim için iyi çalışıyor.

+1

Sen adamsın! – RexOnRoids

+0

ne koordinatlar CIRectangleFeature veya Image ilgi alanının CGPoints gibi bir kamera Görünüm Resmi eğer. Şimdi görüntü manzara ve AspectFit ile portre dönüştürülür ve ilgi alanı göstermek gerekir ediliyor eğer. Manzaraya işaret eden Puanları, uygulamanın dikey sürümüne nasıl dönüştürürdük? Benim durumumda kamera görüntü noktalarını View koordinatlarına dönüştürdüm ama manzara versiyonundalar. – Hassy

İlgili konular