2011-02-25 41 views
1

我是Cocca和IOS開發新手,發現自己處於以下情況。居中UIView

我有一個背景圖片thats 1024x1024,我想在所有視圖上顯示它。我在應用程序委託中將以下代碼放在應用程序didFinishLaunchingWithOptions中,並且它可以正確加載並在所有視圖下可見。

我的問題是,我似乎無法居中背景的UIView

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

// Setup background image for all views 
UIView *backgroundView = [[UIView alloc] initWithFrame: window.frame]; 
backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background-image.png"]]; 
[window addSubview : backgroundView]; 
[backgroundView release]; 


// Override point for customization after application launch. 
[window addSubview:tabBarController.view]; 
[self.window makeKeyAndVisible]; 

return YES; 
} 

我設法背景的UIView移動到不同的位置,但沒有中心。

我會appriciate任何幫助。

在此先感謝 馬特

回答

0

嘗試更換你的代碼...

UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background-image.png"]]; 
backgroundView.frame = window.frame; 
[window addSubview:backgroundView]; 
[backgroundView release]; 

...和嘗試的autoresizingMaskcontentMode如果你的背景image.png backgroundView玩不適合整個窗口。

+0

許多感謝您的答覆@Chiefly的Izzy,你的代碼並添加 \t backgroundView.contentMode = UIViewAutoresizingFlexibleWidth ; 做了我需要的。 – 2011-02-27 17:01:22

+0

這不是它應該如何工作:'backgroundView.contentMode = UIViewAutoresizingFlexibleWidth'。相反,你應該使用'UIViewContentModeScaleAspectFill'。你搞砸了枚舉類型。 – Tricertops 2013-01-05 17:44:33

0

要居中的圖像使用SETFRAME方法,以保持它爲中心使用autoresizingMask屬性

enum { 
    UIViewAutoresizingNone     = 0, 
    UIViewAutoresizingFlexibleLeftMargin = 1 << 0, 
    UIViewAutoresizingFlexibleWidth  = 1 << 1, 
    UIViewAutoresizingFlexibleRightMargin = 1 << 2, 
    UIViewAutoresizingFlexibleTopMargin = 1 << 3, 
    UIViewAutoresizingFlexibleHeight  = 1 << 4, 
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5 
};