【发布时间】:2014-04-30 06:57:18
【问题描述】:
我正在制作的应用程序的一个元素有一个 ViewController,它向用户显示图像缩略图和一些细节。我想要发生的是当用户单击它全屏到其原始大小的图像时(无论是纵向还是横向)。当用户再次点击时,它会将图像最小化为缩略图。
我目前有点击功能,所以它在点击时全屏,然后再次最小化,但它有一些问题。
它似乎将图像拉伸得太多了,如果它是横向图像,它只会纵向拉伸它。缩略图也位于 UIScrollView 中,因此有时在放大图像时,它不会居中,并且在全屏时您仍然可以滚动。请问我可以对此提供一些帮助/建议吗,我坚持要做什么。如果有任何帮助,我希望它类似于它在 Twitter 应用程序上的工作方式。我对 iOS 开发也很陌生。
以下是执行点击时的代码:
-(IBAction)tap:(id)sender {
//goto new ViewController and set the image
if (!isFullScreen) {
[UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
//save previous frame
prevFrame = _imageView.frame;
[_imageView setFrame:[[UIScreen mainScreen] bounds]];
}completion:^(BOOL finished){
isFullScreen = TRUE;
}];
return;
} else {
[UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
[_imageView setFrame:prevFrame];
} completion:^(BOOL finished){
isFullScreen = FALSE;
}];
return;
}
}
【问题讨论】:
-
最好以模态方式呈现视图控制器,而不是更改现有图像视图的框架。
-
感谢Leo的建议,我会接受并试一试。这听起来确实比我想做的更好。欣赏建议!谢谢!
-
一个带有图像视图的简单视图控制器,只需将点击的图像视图的图像分配给模态视图控制器的图像视图的图像。
标签: ios iphone objective-c uiimageview fullscreen