objective-c - 如何通过点击动画 UIImageview 以显示全屏?

标签 objective-c ios5 uiimageview fullscreen

我在 UITableviewCell 中有一个 UIImageView。当它被点击时,UIImageView 应该动画显示全屏。当图片全屏时点击它应该缩小到原来的位置。

如何实现?

最佳答案

向 View Controller 添加手势识别器。

将手势识别器添加到您的头文件中

@interface viewController : UIViewController <UIGestureRecognizerDelegate>{
    UITapGestureRecognizer *tap;
    BOOL isFullScreen;
    CGRect prevFrame;
}

在您的 viewDidLoad 中添加:

isFullScreen = false;
tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imgToFullScreen)];
tap.delegate = self;

添加以下委托(delegate)方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
{
    BOOL shouldReceiveTouch = YES;

    if (gestureRecognizer == tap) {
        shouldReceiveTouch = (touch.view == yourImageView);
    }
    return shouldReceiveTouch;
}

现在您只需实现您的 imgToFullScreen 方法。 确保使用 isFullScreen Bool(如果为假则全屏,如果为真则返回旧尺寸)

imgToFullScreen 方法取决于您希望如何使图像变成全屏。 一种方法是: (这是未经测试但应该有效)

-(void)imgToFullScreen{
    if (!isFullScreen) {
        [UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
            //save previous frame
            prevFrame = yourImageView.frame;
            [yourImageView setFrame:[[UIScreen mainScreen] bounds]];
        }completion:^(BOOL finished){
            isFullScreen = true;
        }];
        return;
    } else {
        [UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
            [yourImageView setFrame:prevFrame];
        }completion:^(BOOL finished){
            isFullScreen = false;
        }];
        return;
    }
}

关于objective-c - 如何通过点击动画 UIImageview 以显示全屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481004/

相关文章:

iOS 5 不会重定向到 Appstore

ios - 滚动 UICollectionView 时加载重复数据

objective-c - CIFilter 在 Swift 中旋转 UIImage

objective-c - 当 UIProgressView 已满时加载新 View

iphone - Tapkulibrary 静态月

iphone - 如何在不加载整个 View 的情况下重置 UIImageView 中的图像?

ios - 如何在不使用临时文件的情况下在 UIWebview 中打开受密码保护的 PDF/DOC?

iphone - 现在正式支持 iOS 设置的深层链接吗?

ios - 将 UIImageView 修改为 UIScrollView 中的 subview

ios - Swift:阻止滚动内的图像上下移动