【问题标题】:Image Full Screen on Tap图像全屏点击
【发布时间】: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


【解决方案1】:

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

imageView.contentMode = UIViewContentModeScaleAspectFit;

在全屏图像的居中和整体方法方面,我接受了 Leo 的建议,将模态地使用 View Controller。

谢谢各位!

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 非常感谢,这解决了我的拉伸问题!在使图像居中并使其类似于 Twitter 应用程序方面,我想我会采纳 Leo 的建议并以模态方式呈现一个视图控制器。感谢您的帮助!
    • @StephenBennett 很高兴我能帮上忙!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 2023-01-10
    相关资源
    最近更新 更多