2011-11-21 74 views
2

我正在製作一個iPad應用程序。在這個應用程序中,我使用DetailViewController中的表格視圖,我添加了一個邏輯,表格視圖根據內容調整其高度。內容製作爲標籤,然後添加到表格視圖單元格中。我已將標籤的寬度設置爲680px。它在縱向模式下正常工作,但我必須在橫向模式下設置615px。如何以編程方式在iPad中定位?

我怎樣才能知道iPad的方向,然後使用if語句來設置標籤寬度。

我以前CGFloat width = CGRectGetWidth(self.view.bounds);得到寬度viewWillAppear。但如果我的應用程序在運行人像,然後它會給寬度肖像,但是當我去到風景模式我收到沒有寬度。請告訴我可以在什麼地方放置上面的線,以便在任何時候在縱向和橫向都可以獲取寬度,或者如果有任何其他的方法來獲取這個寬度。

+0

可能重複[iphone/ipad方向處理](http://stackoverflow.com/questions/2815802/iphone-ipad-orientation-handling) – Nasreddine

回答

0
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    [self adjustViewsForOrientation:toInterfaceOrientation]; 
} 

- (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation { 
    if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) { 
     titleImageView.center = CGPointMake(235.0f, 42.0f); 
     subtitleImageView.center = CGPointMake(355.0f, 70.0f); 
     ... 
    } 
    else if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) { 
     titleImageView.center = CGPointMake(160.0f, 52.0f); 
     subtitleImageView.center = CGPointMake(275.0f, 80.0f); 
     ... 
    } 
} 
0

使用statusBarOrientation,因爲有時裝置取向可以改變,但在狀態欄不會(例如,當該設備可以是平坦的桌子上)。

if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) 
{ 
    adjWidth = 480.0; 
} 
else 
{ 
    adjWidth = 320.0; 
} 
相關問題