2011-12-14 14 views
8

Muszę się upewnić, że jeden widok A (rozmiar: 200x200) jest zawsze wyrównany do prawego górnego rogu wewnątrz drugiego widoku B (pełny ekran). Chcę się upewnić, że widok A pozostaje w tym miejscu, niezależnie od orientacji urządzenia. Prawda jest taka, że ​​nie mam z tym problemu, gdy używam budowniczego interfejsów do pozycjonowania widoków, ale muszę to konstruować programowo. Przypuszczam, że powinienem użyć pewnych ustawień autouzupełniania, czy mógłbyś mi powiedzieć, który z nich ma wyrównać widok do prawego górnego rogu jego widoku?Ustaw pozycję widoku w prawym górnym rogu programowo w dotyku kakao

+1

Czy wyewidencjonowałeś właściwość autoResizing UIView? Http: //developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/instp/ UIView/autoresizingMask http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/c/tdef/UIViewAutoresizing – V1ru8

+0

Czy wymagana jest tylko właściwość Automatycznie maskuj tylko za zachowanie, które opisałem? Próbowałem różnych wartości właściwości autoreizingMask, ale bez skutku ... – mgamer

+0

Najpierw należy ustawić widok w prawidłowej pozycji, ale wtedy orientacja re podczas obrotu jest wykonywana automatycznie przez maskę zmiany rozmiaru. – V1ru8

Odpowiedz

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 

Ustawia widok w prawym górnym rogu i ustawia maskę autouzupełniania, aby pozostała w tej pozycji.

+1

Dzięki, to zadziałało dla mnie świetnie. Tylko jedna modyfikacja ostatniej linii powyżej, która powinna być "view.autoresizingMask = ...". –

Powiązane problemy