objective c - كيفية تحريك أويماجيفيو لعرض ملء الشاشة عن طريق النقر على ذلك؟




objective-c ios5 (4)

لدي أويماجيفيو في إيتابيفوسيل. عندما يتم استغلالها، وينبغي أن ييماجيفيو المتحركة لعرضها ملء الشاشة. عندما يتم استغلالها الصورة عندما يكون ملء الشاشة يجب أن يتقلص مرة أخرى إلى الموضع الأصلي.

كيف احقق هذا؟



رمز من @ AzzUrr1، تصحيح الأخطاء الصغيرة (بين قوسين) و تاببر نفذت قليلا مختلفة.

عملت بالنسبة لي. الآن سيكون كبيرا أن يكون هذا تنفيذها مع سكرولفيو، أن المستخدم يمكن تكبير / تصغير إذا كانت الصورة أكبر .. أي اقتراح؟

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController  <UIGestureRecognizerDelegate>{
    UITapGestureRecognizer *tap;
    BOOL isFullScreen;
    CGRect prevFrame;
}
@property (nonatomic, strong) UIImageView *imageView; 

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    isFullScreen = FALSE;
    tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imgToFullScreen)];
    tap.delegate = self;
    self.view.backgroundColor = [UIColor purpleColor];

    _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 300, 200)];
    _imageView.contentMode = UIViewContentModeScaleAspectFill;
    [_imageView setClipsToBounds:YES];
    _imageView.userInteractionEnabled = YES;
    _imageView.image = [UIImage imageNamed:@"Muppetshow-2.png"];

    UITapGestureRecognizer *tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imgToFullScreen:)];
    tapper.numberOfTapsRequired = 1;

    [_imageView addGestureRecognizer:tapper];

    [self.view addSubview:_imageView];
}

-(void)imgToFullScreen:(UITapGestureRecognizer*)sender {
    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;
    }
}

انتهى بي الأمر باستخدام مهفاسيبوكيماجيفيور . التكامل من السهل، لا UIImageView ، ولها أيضا صورة التكبير ونفض الغبار رفض.

على الرغم من أنه يتطلب AFNetworking (لتحميل صورة أكبر من ورل)، يمكنك التعليق على بعض التعليمات البرمجية (حوالي 10 خطوط) لإزالة هذه التبعية. يمكنني نشر بلدي أفنيتوركينغ نسخة مجانية إذا كان شخص ما في حاجة إليها. دعني اعرف :)


انتهى للتو نسخة في سريع، مجرد تحميل وإضافة إلى المشروع الخاص بك:

GSSimpleImageView.swift

والاستخدام:

let imageView = GSSimpleImageView(frame: CGRectMake(20, 100, 200, 200))
imageView.image = UIImage(named: "test2.png")
self.view.addSubview(imageView)






fullscreen