我在我的应用程序中添加了一个自定义状态栏来监控上传进度。这在纵向模式下工作正常,但是当我在横向和我的自定义状态栏出现时,它总是出现在主页按钮的另一侧。我想这是因为我很难编码我的框架。
我将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文件中的现有窗口 感谢
答案 0 :(得分:1)
首先,您从哪里调用-animateStatusBarIn
方法?
当旋转发生时,您不必为iPadUploadStatusBar
的视图设置框架(如果您在每次方向更改时调用方法animateStatusBar)。
您需要做的就是在iPadUploadStatusBar
笔尖中正确设置视图的自动调整遮罩,并将其作为子视图添加到窗口或viewController的视图中,该视图已经是窗口的子视图。旋转及其动画都将自动为您处理。