2011-12-06 69 views
0

我有一個自定義的UIView用於UITableView頭。我在代碼中創建它。 (我基本上是遵循WWDC 2010的TVAnimationGestures)。對於左側有些偏移的UI元素,它在任一方向上看起來都不錯。但是,如果我想要一個右手尺寸偏移的UILabel,我不知道該怎麼做。如果我在IB,我會使用彈簧/支柱。但不知道如何在代碼中做到這一點。謝謝。當ViewController旋轉時移動一個UIView對象

回答

0

一個簡單的方法是在視圖中實現一個方法,根據UIInterfaceOrientation放置它的子視圖。

然後,您可以在檢測到旋轉時從UIViewController調用此方法。

例如:

在YourView.h

@interface YourView : UIView { 

} 

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

@end 

在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 

然後在YourController.m

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