iphone - UIImageView و UIScrollView التكبير



objective-c ios (4)

أعتقد أن هذه الإجابة قد تكون غير ضرورية ولكني واجهت مشكلات مشابهة مثلadit وحلتها بطريقة بسيطة جدًا (على ما أظن) وربما شخصًا لديه تحديات مشابهة يمكنه استخدامه:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor yellowColor];

    UIImage *imageToLoad = [UIImage imageNamed:@"background_green"];

    self.myImageView = [[UIImageView alloc]initWithImage:imageToLoad];
    self.myScrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];
    [self.myScrollView addSubview:self.myImageView];
    self.myScrollView.contentSize = self.myImageView.bounds.size;
    self.myScrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    self.myScrollView.minimumZoomScale = 0.3f;
    self.myScrollView.maximumZoomScale = 3.0f;
    self.myScrollView.delegate = self;
    [self.view addSubview:self.myScrollView];
}

- (UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView {
    NSLog(@"viewForZoomingInScrollView");
    return self.myImageView;
} 

كانت مشكلتي بسيطة جدا نسيت أن أضيف self.myScrollView.delegate = self; ، والذي كان السبب في أنني واجهت مشاكل. استغرق الأمر إلى الأبد لمعرفة هذه المشكلة البسيطة ، أعتقد أنني لم أرى الغابة لجميع الأشجار :-)

https://ffff65535.com

هل أنا بحاجة بالفعل إلى UIPinchGestureRecognizer داخل UIScrollView لجعل العمل قرصة؟ إذا كان الجواب نعم كيف أفعل ذلك؟ أحاول تطبيق ما هو flipboard ، حيث يقوم في الأساس بتكبير صورة والحصول على إمكانية التمرير بعد التكبير. كيف أفعل ذلك؟

تحديث:

إليك بعض التعليمة البرمجية الموجودة لدي والتي لا تستدعي تفويض عرض التمرير

CGRect imgFrame;
imgFrame.size.width = originalImageSize.width;
imgFrame.size.height = originalImageSize.height;
imgFrame.origin.x = imageOriginPoint.x;
imgFrame.origin.y = imageOriginPoint.y;

NSData *data = [request responseData];
UIImage * image = [UIImage imageWithData:data];
imageView = [[UIImageView alloc] initWithImage:image];
[imageView setUserInteractionEnabled:YES];
[imageView setBackgroundColor:[UIColor clearColor]];
[imageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[imageView setFrame:CGRectMake(0, 0, imgFrame.size.width, imgFrame.size.height)];

UIScrollView * imgScrollView = [[UIScrollView alloc] initWithFrame:imageView.frame];
imgScrollView.delegate = self;
imgScrollView.showsVerticalScrollIndicator = NO;
imgScrollView.showsHorizontalScrollIndicator = NO;
[imgScrollView setScrollEnabled:YES];
[imgScrollView setClipsToBounds:YES];
[imgScrollView addSubview:imageView];
[imgScrollView setBackgroundColor:[UIColor blueColor]];
[imgScrollView setMaximumZoomScale:1.0];

عندما كنت أعمل على تطوير عارض Zooming PDF في UIScrollView ، اكتشفت أنه عند تشغيله على الهاتف ، فإنه بالفعل يحتوي على تطبيق التكبير / التصغير كجزء من الهاتف. ولكن يمكنك إلقاء نظرة على هذا ، http://developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Introduction/Intro.html هو جزء من نموذج التعليمات البرمجية الذي يحاول تطبيق وظيفة التكبير ، وهذا هل تريد أن تبدأ بي.


كل ما عليك فعله هو إضافة UIImageView (أو أي عرض تريد تكبيره) داخل UIScrollView .

قم بتعيين maximumZoomScale على maximumZoomScale إلى أي قيمة أعلى من 1.0f.

تعيين نفسك UIImageView في طريقة المفوض viewForZooming.

هذا هو. لا حاجة لفتة قرصة ، لا شيء. UIScrollView يعالج تكبير قرصة لك.


Swift 2.0 Pinch-zoom Image في خطوات Scrollview (Swift 2.0)

1. التمرير عرض القيود

2. إضافة ImageView في ScrollView وتعيين القيود

3. خذ IBOutlets

IBOutlet UIScrollView * bgScrollView;
IBOutlet UIImageView * imageViewOutlet;

4. طريقة viewDidLoad

- (void)viewDidLoad
 {
    [super viewDidLoad];

    float minScale=bgScrollView.frame.size.width / imageViewOutlet.frame.size.width;
    bgScrollView.minimumZoomScale = minScale;
    bgScrollView.maximumZoomScale = 3.0;
    bgScrollView.contentSize = imageViewOutlet.frame.size;
    bgScrollView.delegate = self;
}

5. التمرير عرض طريقة التفويض

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return imageViewOutlet;
}




uiscrollview