以UIView为中心

时间:2011-02-25 14:31:09

标签: xcode ipad ios uiview

我是Cocca和IOS开发的新手,发现自己处于以下情况。

我有一个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移动到各个位置,但不是中心。

我会对此提出任何帮助。

提前致谢 马特

2 个答案:

答案 0 :(得分:0)

尝试用...替换您的代码

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

...如果你的background-image.png不适合整个窗口,请尝试使用backgroundView的{​​{1}}和autoresizingMask

答案 1 :(得分:0)

使用setFrame方法使图像居中,使其保持居中使用autoresizingMask属性

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