为什么setNavigationBarHidden:animated:更改边界并构建我的子视图?

时间:2011-07-20 19:23:20

标签: iphone ios uinavigationbar

隐藏/显示导航栏时遇到问题。我没有笔尖推动我的视图控制器 并创建视图:

- (void)loadView
{
    self.view = [[UIImageView alloc] init];
    self.view.userInteractionEnabled = YES;
    self.view.backgroundColor = [UIColor whiteColor];
    self.photoView = (UIImageView *)self.view;
    [self nextPhoto];
}

PhotoView(self.view)屏幕上有所有空间,我添加了捏,平移和点击图像。 如果单击,需要显示或隐藏导航栏:

- (void) toggleNavigationBar:(UITapGestureRecognizer *)aGestureRecognizer
{
    // for debug
    CGRect bounds = photoView.bounds;
    CGRect frame = photoView.frame;

    // toggle navigation bar
    [self.navigationController setNavigationBarHidden:!self.navigationController.navigationBarHidden animated:YES];

    // for debug
    CGRect bounds2 = photoView.bounds;
    CGRect frame2 = photoView.frame;
}

例如,我放大图像x2然后点击以显示导航栏,然后我的变量发生变化:

之前:

bounds = origin=(x=0,y=0) size=(width=320,height=480)
frame  = origin=(x=-160,y=-240) size=(width=640,height=960)

后:

bounds2 = origin=(x=0,y=0) size=(width=160,height=240)
frame2  = origin=(x=0,y=0) size=(width=320,height=480)

图像缩小,然后所有图像操作都错误。

为什么会发生这种情况以及如何修复它?我认为隐藏财产的问题, 我需要使用不透明度而不是隐藏属性。

0 个答案:

没有答案