2011-12-14 10 views
8

Bir görünüm A'nın (boyut: 200x200) her zaman ikinci görünüm B (tam ekran boyutu) içinde sağ üst köşeye hizalandığından emin olmanız gerekir. Cihazın yönüne bakılmaksızın A görüntüsünün bu yerde kaldığından emin olmak istiyorum. Gerçek şu ki, bu durum, arayüz oluşturucuyu görüntüyü konumlandırmak için kullanırken bununla ilgili bir problemim yok ama bu programsal olarak oluşturmam gerekiyor. Bazı otomatik ayarlama ayarlarını kullanmalıyım, görünüşü süper görüşünün sağ üst köşesine nasıl hizalayacağını söyler misiniz?Görünüm konumunu sağ üst köşede kronolojik olarak ayarlama

+1

, UIView'nin http: //developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/instp/ bağlantısının autoResizing özelliğini kontrol ettiniz mi? UIView/autoresizingMask http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/c/tdef/UIViewAutoresizing – V1ru8

+0

Yalnızca gerekli olan autoresizingMask özelliği mi tarif ettiğim davranış için? AutoresizingMask özelliğinin farklı değerlerini denedim ama boşuna ... – mgamer

+0

Görünümü ilk başta doğru konumda konumlandırmanız gerekiyor, ancak döndürme sırasında yeniden yönlendirme otomatik olarak yeniden boyutlandırma maskesi tarafından gerçekleştiriliyor. – V1ru8

cevap

20
UIView parentView //your full screen view 
UIView view //the 200x200 view 

[parentView addSubview:view]; 
CGRect frame = view.frame; 

//align on top right 
CGFloat xPosition = CGRectGetWidth(parentView.frame) - CGRectGetWidth(frame); 
frame.origin = CGPointMake(ceil(xPosition), 0.0); 
view.frame = frame; 

//autoresizing so it stays at top right (flexible left and flexible bottom margin) 
view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin 

Bu, görünümü sağ üstte konumlandırır ve otomatikleştirici maskeyi ayarlayarak bu konumda kalmasını sağlar.

+1

Teşekkürler, bu benim için harika çalıştı. Yukarıdaki son satırdaki bir değişiklik, "view.autoresizingMask = ..." olmalıdır. –

İlgili konular