使用sdk 4.2,我在应用程序委托的我的 didFinishLaunchingWithOptions方法中的应用程序的tabBarController中添加了一个小按钮。这个想法是,当在屏幕上显示的任何视图控制器的顶部使其可见时显示。用户可以在视图之间切换,并且该按钮仍然可见。所述tabBarcontroller的将视图添加到TabBarcontroller
NSLog(@"tabBarController bounds: %@",NSStringFromCGRect(self.tabBarController.view.bounds));
self.Btn = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
self.Btn.frame = CGRectMake(80, 20, 160, 20);
self.Btn.hidden = YES;
[self.Btn addTarget:self action:@selector(launch:) forControlEvents:UIControlEventTouchUpInside];
[self.Btn setBackgroundImage:[UIImage imageNamed:@"launch.png"] forState:UIControlStateNormal];
[self.tabBarController.view addSubview:self.Btn];
范围,由NSLog的 打印出来{{0,0},{320,480}}
我使按钮CGRectMake(80,20,160,20的框架);所以我抵消了20下来允许状态栏 。这在大多数情况下都有效,当我使按钮可见时,它在可见视图控制器顶部的正确位置显示 。但有时候,按钮会向下移动,就好像tabBarcontroller的边界改变为0,0,320,460。所以按钮现在相对于新的界限,所以距离屏幕顶部多出20个像素。
一旦它移动,它会一直保持这样,直到我从任务切换器中终止应用并重启。 任何人都不知道什么会导致这种情况,以及如何解决。谢谢