图像全屏点击

时间:2014-03-22 21:11:53

标签: ios iphone objective-c uiimageview fullscreen

我正在制作的应用程序的一个元素有一个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;
    }
}

2 个答案:

答案 0 :(得分:3)

试试imageView.contentMode = UIViewContentModeScaleAspectFit; 并将其放置在初始化图像视图的位置。

答案 1 :(得分:1)

消除我使用的拉伸问题(Milo提供):

imageView.contentMode = UIViewContentModeScaleAspectFit;

就完全放映图像的居中和整体方法而言,我已经采纳了Leo的建议,并将以模态方式使用View Controller。

谢谢大家!