2011-12-06 20 views
0

私はUITableViewヘッダーに使用しているカスタムUIViewを持っています。私はコードでそれを作成しています。 (私は基本的にWWDC 2010のTVAnimationGesturesに従っています)。左端からオフセットされたUI要素の場合、いずれの方向にも見栄えがよくなります。しかし、右手のサイズからオフセットされたUILabelが必要な場合は、何をすべきか分かりません。私がIBにいたら、スプリング/ストラットを使います。しかし、コードでそれを行う方法は不明です。ありがとう。ViewControllerを回転させるとUIViewオブジェクトが移動する

答えて

0

IBにおけるスプリング/ストラットがautoresizingMaskへのGUIインターフェースです:右寄せの場合

http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW6

、あなたは正しいとラベルを配置したいあなたが最初にそれを作成し、(UIViewAutoresizingFlexibleLeftMarginにautoresizingMaskを設定するとオフセットあなたが欲しいものはどれか。)

0

これを行う簡単な方法は、UIInterfaceOrientationに従ってサブビューを配置するビューにメソッドを実装することです。

回転が検出されると、UIViewControllerからこのメソッドを呼び出すことができます。例えば

:YourController.m

に続いYourView.h

YourView.m

#import "YourView.h" 

@implementation YourView 

... 

#pragma mark - 
#pragma mark Public API 

- (void)placeWidgetsForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Change frames of subviews according to orientation in here 
} 

@end 

@interface YourView : UIView { 

} 

// Public API 
- (void)placeWidgetsForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation; 

@end 

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    YourView *theView = (YourView *) self.view; // Or where ever your view is 
    [theView placeWidgetsForInterfaceOrientation:toInterfaceOrientation]; 
} 
関連する問題