久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何使用或不使用 ScrollView 使 ImageView 可縮放?

how to make an ImageView zoomable with or without ScrollView.?(如何使用或不使用 ScrollView 使 ImageView 可縮放?)
本文介紹了如何使用或不使用 ScrollView 使 ImageView 可縮放?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我的 IB 中有一個 UImageView,并在該 UImageView 上添加了一個地圖圖像.我想讓該圖像可以縮放.

I have an UImageView in my IB and added a map image on that UImageView. I want to make that image pinch zoomable.

這是我的代碼:

- (void)viewDidLoad
{
   [super viewDidLoad];
    self.title = @"Map";

   self.mapImageView.contentMode = UIViewContentModeScaleAspectFit;
   [self.mapScrollView addSubview:self.mapImageView];
   [self.mapScrollView setContentSize:CGSizeMake(self.mapImageView.frame.size.width, self.mapImageView.frame.size.height)];
   [self.mapScrollView setMinimumZoomScale:1.0];
   [self.mapScrollView setMaximumZoomScale:4.0];
}

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

但這無濟于事,我可以看到 UIScrollView 來了,但我的圖像沒有任何反應.
提前致謝.

but this doesn't help, I can see a UIScrollView Coming but nothing happen to my image.
Thanks in advance.

推薦答案

在你的 ViewController.h 文件中添加 UIScrollViewDelegate

Add UIScrollViewDelegate in your ViewController.h file

然后將以下代碼添加到您的 ViewController.m 文件中

then add following code to your ViewController.m file

如果您使用此代碼,則無需添加 UIPinchGestureRecognizer

No need to add UIPinchGestureRecognizer if your using this code

    - (void)scrollViewDidZoom:(UIScrollView *)scrollView
    {

    UIView* zoomView = [scrollView.delegate viewForZoomingInScrollView:scrollView];

    CGRect zoomViewFrame = zoomView.frame;

    if(zoomViewFrame.size.width < scrollView.bounds.size.width)

    {

    zoomViewFrame.origin.x = (scrollView.bounds.size.width - zoomViewFrame.size.width) / 2.0;

    }

    else

    {
    zoomViewFrame.origin.x = 0.0;
    }

    if(zoomViewFrame.size.height < scrollView.bounds.size.height)

     {      zoomViewFrame.origin.y = (scrollView.bounds.size.height - zoomViewFrame.size.height) / 2.0;

    }
    else

    {
    zoomViewFrame.origin.y = 0.0;
    }
    zoomView.frame = zoomViewFrame;
    }

修改viewDidLoad如下

- (void)viewDidLoad
 {
     [super viewDidLoad];
    self.mapScrollView.delegate = self;
    self.mapScrollView.minimumZoomScale = 1.0;
    self.mapScrollView.maximumZoomScale = 4.0;
    UIImage * myImage= [UIImage imageNamed:@"Background.png"]; //add your image here
    [self.mapImageView setImage:myImage];
    [self.mapImageView sizeToFit];
    self.mapScrollView.contentSize = myImage.size;

}

在此處指定要放大的imageView

Specify the imageView to zoom here

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

要避免 UIScrollView 在 zoomimg 上的奇怪行為,請使用此方法

To avoid the strange behaviour of UIScrollView on zoomimg use this method

- (void)view:(UIView*)view setCenter:(CGPoint)centerPoint
{
    CGRect viewFrame = view.frame;
        CGPoint contentOffset = self.mapScrollView.contentOffset;

        CGFloat x = centerPoint.x - viewFrame .size.width / 2.0;
        CGFloat y = centerPoint.y - viewFrame .size.height / 2.0;

    if(x < 0)
    {
        contentOffset.x = -x;
        viewFrame .origin.x = 0.0;
    }
    else
    {
        viewFrame .origin.x = x;
    }
    if(y < 0)
    {
        contentOffset.y = -y;
        viewFrame .origin.y = 0.0;
    }
    else
    {
        viewFrame .origin.y = y;
    }

    view.frame = viewFrame ;
    self.mapScrollView.contentOffset = contentOffset;
}

然后在viewDidAppear上調用上面的方法

Then call the above method on viewDidAppear

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    CGPoint centerPoint = CGPointMake(CGRectGetMidX(self.mapScrollView.bounds),
                                  CGRectGetMidY(self.mapScrollView.bounds));
    [self view:self.mapImageView setCenter:centerPoint];
}

看看這個 鏈接.我從那個鏈接學到了這項技術.

have a look at this link if you need more clarification. I learned this technique from that link.

這篇關于如何使用或不使用 ScrollView 使 ImageView 可縮放?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Stop a UITableView from automatically scrolling(阻止 UITableView 自動滾動)
iOS UIScrollView Lazy Loading(iOS UIScrollView 延遲加載)
using iOS 6.0 SDK and building for iOS 5 Target causes UIScrollView setMinimumZoomScale to fail when running on iOS 5 simulator(在 iOS 5 模擬器上運行時,使用 iOS 6.0 SDK 并為 iOS 5 Target 構建會導致 UIScrollView setMinimumZ
Create partial-screen UIPageViewController programmatically(以編程方式創建部分屏幕 UIPageViewController)
UIImageView zoom and pinch in UIScrollView(UIImageView 在 UIScrollView 中縮放和捏合)
How can i add more than 10 buttons on a navigationbar in iphone application development?(如何在 iphone 應用程序開發中的導航欄上添加 10 多個按鈕?)
主站蜘蛛池模板: 成人午夜在线观看 | 国产精品偷拍 | 欧美精品在线免费观看 | 国产精品久久 | 日韩中文av | 日韩一区二区三区免费视频 | 精品国产一区二区三区久久久蜜月 | 三级黄色片 | 国产美女视频网站 | 精品国产一区二区三区四区 | 国产精品成人在线观看 | 成人免费在线播放 | 国产剧情在线 | 日韩在线高清 | av黄色片| 亚洲最大黄色网址 | 久久久精品一区二区 | 国产一级网站 | 美日韩丰满少妇在线观看 | 欧美成人a | 亚洲精品中文字幕乱码三区91 | 欧美国产日韩视频 | 亚洲伊人av| 国产乱码精品一品二品 | 国产又粗又大又长 | 日韩欧美黄色 | 色综合五月 | 91在线精品李宗瑞 | 亚洲高清中文字幕 | 欧美黑人一区二区三区 | 亚洲综合视频在线 | aaaaa级片| 日韩黄色一级 | 久久精品三级 | 中文字幕中文字幕 | 国产理论视频 | 在线观看黄色小视频 | 免费在线观看黄色片 | 久久免费小视频 | 免费看黄色大片 | 午夜私人影院 |