首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UIScrollView中实现夹点以关闭功能?

问如何在UIScrollView中实现夹点以关闭功能?
EN

Stack Overflow用户
提问于 2014-02-08 21:49:33
回答 1查看 317关注 0票数 0

当用户通过捏出图片将图像放大到足够远时,我希望它关闭UIImageView/滚动视图,基本上退出图片查看器。

我该怎么做呢?scrollViewDidEndZooming是在动画化后被调用的,所以我不能使用它,其他的委托方法似乎都没有帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-02-08 21:55:24

我已经为我的一个应用程序创建了这个效果,别忘了设置滚动视图的委托。您需要用捏手势更新私有方法(仅此而已)。

.h文件代码

代码语言:javascript
复制
#import <UIKit/UIKit.h>

@interface ImageViewerController : UIViewController<UIScrollViewDelegate>

// The scroll view used for zooming.
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;

// The image view that displays the image.
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

// The image that will be shown.
@property (strong, nonatomic) NSString *imageUrlString;

@end

.m代码

代码语言:javascript
复制
#import "ImageViewerController.h"

@interface HNImageViewerController ()

- (IBAction)handleSingleTap:(UIButton*)tapGestureRecognizer;
@end

@implementation ImageViewerController

- (void)viewDidLoad {
[super viewDidLoad];
[self.imageView setImage:[UIImage imageNamed:@"placeholder-image"]];
self.scrollView.delegate=self;
}

- (BOOL)prefersStatusBarHidden {
return YES;
}

#pragma mark - UIScrollViewDelegate methods

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return self.imageView;
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (self.scrollView.zoomScale == self.scrollView.minimumZoomScale) {
    [self dismissViewControllerAnimated:YES completion:nil];
}
}

#pragma mark - Private methods

- (IBAction)handleSingleTap:(UIButton *)tapGestureRecognizer {

[self dismissViewControllerAnimated:YES completion:nil];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21652215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档