久久久久久久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 多個按鈕?)
主站蜘蛛池模板: 在线免费观看视频你懂的 | 99re国产视频 | 99视频免费在线 | 欧美国产一区二区 | 中文字幕一区二区三区在线视频 | 日韩免费一区二区 | 国产亚洲精品久久久久动 | av日韩在线播放 | av在线一区二区三区 | 97视频久久| 一级网站 | 九九综合| jizz视频 | 毛片网站在线观看视频 | 久久久高清 | 日韩免费福利视频 | 久久久久亚洲精品中文字幕 | 在线观看黄免费 | 国产一区二区在线播放 | 亚洲天堂久久 | 欧美黄视频 | 精品一区二区三区四区视频 | 午夜精品久久久久久 | 精品国产一区二区 | 激情毛片| 国产视频久久 | 91视频中文 | 成人免费视频一区二区 | 精品一区国产 | 自拍偷拍亚洲视频 | 日韩 欧美 二区 | 日本久久一区二区三区 | 午夜伊人 | 日本高清aⅴ毛片免费 | 91麻豆精品国产91久久久久久 | 久久精品久久综合 | 日韩高清一区 | 色综合久久天天综合网 | 操亚洲| 欧美一区二区三区在线观看 | 国产三级国产精品 |