在iPad上以编程方式添加子视图,硬编码帮助

时间:2010-06-04 02:09:53

标签: objective-c cocoa ipad

我在我的应用程序中添加了一个自定义状态栏来监控上传进度。这在纵向模式下工作正常,但是当我在横向和我的自定义状态栏出现时,它总是出现在主页按钮的另一侧。我想这是因为我很难编码我的框架。

我将XIB文件设置为自动调整其长度。

看看:

-(void) animateStatusBarIn {
float x = window.frame.origin.x;
float y = window.frame.origin.y;
float height = 20;
float width = window.frame.size.width;
CGRect statusFrame = CGRectMake(x, y-20, width, height);
iPadUploadStatusBar *statusView = [[iPadUploadStatusBar alloc] initWithNibName:@"iPadUploadStatusBar" bundle:nil];

self.status = statusView;

[statusView release];

status.view.frame = statusFrame;
[window addSubview:status.view];

[UIView beginAnimations:@"slideDown" context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
statusWindow.frame = CGRectMake(0.0f, 0.0f, 1024.0f, 20.0f);    
[UIView commitAnimations];
}   

纵向方向一切都很好,但就像我说的那样,它总是决定新的状态栏应该与主页按钮相反。请帮忙!!!

顺便说一句,这是在AppDelegate.m中,所以我正在使用默认appDelegate文件中的现有窗口 感谢

1 个答案:

答案 0 :(得分:1)

首先,您从哪里调用-animateStatusBarIn方法?

当旋转发生时,您不必为iPadUploadStatusBar的视图设置框架(如果您在每次方向更改时调用方法animateStatusBar)。

您需要做的就是在iPadUploadStatusBar笔尖中正确设置视图的自动调整遮罩,并将其作为子视图添加到窗口或viewController的视图中,该视图已经是窗口的子视图。旋转及其动画都将自动为您处理。