2011-12-14 32 views
8

Tôi cần đảm bảo rằng một khung nhìn A (kích thước: 200x200) luôn được căn chỉnh ở góc trên cùng bên phải trong chế độ xem thứ hai B (kích thước màn hình đầy đủ). Tôi muốn đảm bảo rằng chế độ xem A nằm ở vị trí đó bất kể định hướng thiết bị. Sự thật là tôi không có vấn đề với điều này khi sử dụng trình xây dựng giao diện để định vị các khung nhìn nhưng tôi cần phải xây dựng chương trình này theo cách lập trình. Tôi cho rằng tôi nên sử dụng một số thiết lập autoresizing, bạn có thể cho tôi biết cái nào là nghĩa vụ phải sắp xếp các xem để góc trên bên phải của superview của nó?Đặt vị trí xem ở trên cùng bên phải lập trình trong cacao chạm

+1

bạn đã kiểm tra thuộc tính tự động hóa của 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

Thuộc tính autoresizingMask chỉ là bắt buộc cho hành vi tôi mô tả? Tôi đã thử các giá trị khác nhau của thuộc tính autoresizingMask nhưng không có kết quả ... – mgamer

+0

Bạn phải định vị chế độ xem ở vị trí chính xác ở vị trí đầu tiên nhưng sau đó định hướng lại trong khi xoay được thực hiện tự động bằng mặt nạ thay đổi kích thước. – V1ru8

Trả lời

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 

Điều đó đặt chế độ xem ở trên cùng bên phải và đặt mặt nạ tự động sao cho nó ở vị trí đó.

+1

Cảm ơn, điều này rất hữu ích cho tôi. Chỉ cần một sửa đổi cho dòng cuối cùng ở trên, đó phải là "view.autoresizingMask = ...". –

Các vấn đề liên quan