使用以下代码:
UIImageView *largeImageView = [[UIImageView alloc] initWithImage:theImage]; [largeImageView setContentMode:UIViewContentModeScaleAspectFit]; largeImageView.frame = [[UIScreen mainScreen] applicationFrame]; [viewController.view addSubview:largeImageView]; viewController.hidesBottomBarWhenPushed = YES; [self.navigationController pushViewController:viewController animated:YES];
我希望图像位于View的顶部,而不是底部。我仔细检查了原点x和y,它们是0,0。
以下是截图:http://cl.ly/8F3J
答案 0 :(得分:1)
感谢Tommy大声提供一些思考和调试帮助,我弄清楚我做错了什么。我改变了操作顺序并在之后将imageview添加为子视图我将导航堆栈上的viewcontroller推送。这解决了这个问题,因为我的视图控制器从导航控制器获得了它的新视图。
答案 1 :(得分:0)
largeImageView
是viewController.view
的子视图,因此其坐标相对于其超视图的坐标。可能你想要更像的东西:
// the bounds of viewController.view contain its correct size, but
// have an origin of (0, 0)
largeImageView.frame = viewController.view.bounds;
[viewController.view addSubview:largeImageView];
一分钟可能发生的事情是你得到一个比视图控制器的视图大小大得多的帧,然后UIViewContentModeScaleAspectFit
将在视图的顶部和底部添加一些空间这一事实(假设您的图像比目标视图的比例要宽)将图像从屏幕底部推出。