2011-12-14 21 views
8

1つのビューA(サイズ:200x200)が常に2番目のビューB(全画面サイズ)の右上隅に揃っていることを確認する必要があります。私は、ビューAがデバイスの向きに関係なくその場所に留まることを確認したい。真実は、ビューを配置するインターフェイスビルダを使用して私はこれで問題はありませんが、私はこれをプログラムで構築する必要があります。私はいくつかの自動サイズ設定を使用する必要があると思いますが、そのスーパービューの右上隅にビューを合わせるはずのものを教えてください。ココアタッチでプログラムで表示位置を右上に設定する

+1

あなたはUIViewのautoResizingプロパティをチェックアウトしましたか?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

必要な自動サイズ変更専用プロパティはありますか私が記述した行動のために?私はautoresizingMaskプロパティの異なる値を試してみましたが、役に立たなかった... – mgamer

+0

最初の場所で正しい位置にビューを配置する必要がありますが、回転中の再配置はサイズ変更マスクによって自動的に行われます。 – V1ru8

答えて

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 

ビューが右上に配置され、自動サイズ設定マスクがその位置にとどまるように設定されます。

+1

ありがとう、これは私にとって素晴らしい仕事でした。上記の最後の行を修正するだけで、 "view.autoresizingMask = ..."にする必要があります。 –

関連する問題