`
119568242
  • 浏览: 431033 次
  • 性别: Icon_minigender_1
  • 来自: 深圳/湛江
社区版块
存档分类
最新评论

[ios]scrollView实现移动与缩放

    博客分类:
  • ios
 
阅读更多

实现滑动

1.在viewDidLoad中对scrollview的contentSize属性赋值 告诉他滑动范围。

 

实现缩放

1.在storyboard的scrollview的attribute标签中设置zoom的范围。

2.实现一个UIScrollViewDelegate[scrollview的委托],并将其在viewDidLoad中传给scrollview

3.实现UIScrollViewDelegate 需要复写- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

这个方法返回需要zoom的view。

 

注意:如果使用缩放  且缩放的view大于屏幕

则必须要设置所需要缩放的view的fram 否则 zoom过程中会将view的frame改变 从而改变到了 image的size 导致scrollView 的contentSize 改变 影响滑动效果。 

所以每次使用zoom的时候 需要变化的view需要设置它的frame.szie与它的内容大小绑定[如imageView 的image.size]

 

 

简要代码:

 

//
//  ISViewController.m
//  ImageInScrollView
//
//  Created by liu poolo on 12-10-12.
//  Copyright (c) 2012年 liu poolo. All rights reserved.
//

#import "ISViewController.h"

@interface ISViewController ()<UIScrollViewDelegate>

@end

@implementation ISViewController
@synthesize scrollView=_scrollView;
@synthesize imageView=_imageView;
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    //设置UIScrollViewDelegate
    self.scrollView.delegate=self;
    
    
    self.scrollView.contentSize=self.imageView.image.size;
    self.imageView.frame=CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);
  










 self.imageView.frame=CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);

    //如果不加这句的话

    //那么正常拖动是可以的,但是如果zoom了 就会有问题

    //zoom发生后会把frame变成当前显示大小[imageview默认大小 屏幕显示大小 如是全屏则就是全屏大小] zoom变化导致frame同步改变了image的size 大小为frame大小

    //image 的size改变后导致self.scrollView.contentSize 变成了frame的大小  从而contentSize变小了 无法实现正常拖动。

    //然后根据zoom缩放比例变化。而不是根据实际图片大小。这么导致zoom后就无法拖动了[因为frame大小]




    


}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
    //返回需要zoom的view
{
    //如果想要scrollview 实现缩放 则需要给scrollview.delegate 对一个UIScrollViewDelegate 对象
    //且 此对象需要覆写viewForZoomingInScrollView 方法。
    //总结:只有 scrollview的delegate复写了viewForZoomingInScrollView scrollview才会缩放。
    return self.imageView;
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    self.scrollView=nil;
    self.imageView=nil;
}

@end
 

 

 

 

分享到:
评论

相关推荐

    ScrollViewDemo

    ScrollViewDemo通过大图展示的例子,帮助开发者学习如何创建自定义的滚动视图,以及如何利用手势来控制视图的移动和缩放,这些都是iOS开发中非常实用的技能。通过深入理解并实践这些知识点,开发者可以创建出更加...

    ios-Scrollview.zip

    下个版本可能会补充更多细节,如图片的缩放、平移等交互功能,以及如何处理ScrollView与其他视图的交互问题。 总之,iOS开发中的ScrollView是一个功能强大的组件,它提供了丰富的可能性来展示和操作大量内容。理解...

    swift-iOS使用UIScrollView处理图片的缩放(图片浏览器)

    在iOS应用开发中,Swift语言为我们提供了丰富的框架和工具来实现各种复杂的用户界面。本教程将深入探讨如何使用UIScrollView处理图片的缩放和平移,构建一个精简版的图片浏览器。首先,我们要理解UIScrollView的基本...

    ios-UIScrollView横向移动, 可实现左右滑动查看信息.zip

    在本项目“ios-UIScrollView横向移动, 可实现左右滑动查看信息.zip”中,主要探讨了如何配置和利用UIScrollView来实现水平方向上的滑动,让用户能够通过左右滑动查看更多信息。这个功能常用于展示长列表、图片浏览...

    图片缩放功能的一个Demo

    5. 实现UIScrollViewDelegate的`- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView`方法,返回可缩放的UIImageView。 6. 当接收到 pinch 手势时,UIScrollView会自动处理缩放,或者你可以手动调用...

    scrollView

    2. **图片浏览**:在iOS应用中,ScrollView常用于实现图片浏览功能,特别是在展示大量图片时,如相册或产品展示。通过ScrollView,用户可以前后滑动查看图片,而无需每次都加载新的图片视图。 3. **无限循环**:在...

    scrollview+ textfield demo

    在实现过程中,开发者可能需要使用UIScrollView的`contentInset`和`scrollIndicatorInsets`属性来动态调整ScrollView的内容区域,以便在键盘出现时,将输入框移动到可视区域。此外,还需要关注...

    ios-图片放大缩小移动双击还原.zip

    在iOS开发中,图片的处理是一项常见的任务,特别是在创建交互式应用时,用户可能需要查看大图、缩放和移动图片。"ios-图片放大缩小移动双击还原.zip" 文件包含了一个实现这些功能的示例代码。这个项目的核心是利用...

    基于UIScrollView和UIPageControl的相册

    在iOS开发中,创建一个类似相册的应用是常见的需求,其中`UIScrollView`和`UIPageControl`是实现这一功能的关键组件。`UIScrollView`是苹果提供的一个可滚动视图,能够展示超过视图边界的内容,而`UIPageControl`则...

    (0023)-iOS/iPhone/iPAD/iPod源代码-滚动视图(ScrollView)-ScrollXib

    本教程将深入探讨如何利用ScrollView加载大尺寸图片,并让用户能够通过移动屏幕查看图片的各个部分。ScrollView允许用户在水平或垂直方向滚动内容,超过其实际显示区域,从而提供了丰富的用户体验。 首先,我们需要...

    iOS 仿网易可滑动菜单

    在iOS开发中,实现一个类似网易新闻客户端那样的可滑动菜单是一项常见的需求。这个功能让用户可以方便地在多个内容板块之间切换,提高了用户体验。在本文中,我们将深入探讨如何在iOS应用中创建一个这样的可滑动菜单...

    带阻尼效果的scrollview,仿QQ空间

    ScrollView是Android和iOS等操作系统中常见的一种布局控件,它允许用户在单个屏幕上滚动查看超过屏幕大小的内容。在开发过程中,开发者可能会遇到各种需求,比如创建一个可以滑动浏览长列表或图片的界面,这时...

    iOS-ECharts的使用

    ECharts作为一个成熟的产品,具备了丰富的功能和良好的社区支持,非常适合用于移动应用中的数据展示。 由于ECharts主要是基于Web技术(HTML5 Canvas 和 SVG)构建的,所以在iOS应用中直接使用ECharts并不方便。为此...

    图片缩放ImageZoom

    在iOS开发中,图片缩放是一项常见的功能,特别是在滚动视图如UIScrollView中。"图片缩放ImageZoom"这个主题主要涉及如何实现用户交互式的图片放大和缩小,以便在UIScrollView中流畅地查看大尺寸图片。接下来,我们将...

    iOS PDF阅读器源码

    这个“iOS PDF阅读器源码”提供了一个实现基本PDF操作的基础框架,包括翻页、复制文本、缩放以及小页面预览。下面我们将深入探讨这些功能的实现及其在iOS开发中的技术细节。 首先,基础的PDF处理离不开Apple提供的...

    ios应用源码之图片放大镜效果 2018127

    在iOS应用开发中,图片放大镜效果是一种常见的交互设计,它允许用户在查看图片时,通过手指触摸或移动来实现局部区域的放大显示,增强用户体验。这个“ios应用源码之图片放大镜效果”提供了实现这种功能的具体代码,...

    UIScrollView 原理

    - 如果scrollView允许滚动,那么当用户拖动时,scrollView会根据拖动的方向和速度来更新contentOffset,从而实现滚动效果。 2. **分页模式**: - 如果设置了`pagingEnabled = true`,那么scrollView会在每个page...

    IOS应用源码——类似于ios内置的图片浏览器的demo.zip

    这个压缩包文件“IOS应用源码——类似于ios内置的图片浏览器的demo.zip”包含了一个iOS应用的源代码,目的是为了实现一个与iOS系统内置图片浏览器类似的功能。在iOS开发中,这种图片浏览器通常用于展示用户的相册...

    ReactNative键盘视差ScrollView

    它通过创建一个具有视差效果的ScrollView来实现这一目标,当键盘出现时,整个内容视图会向上平移,同时背景可能以一定的速度和比例缩放,创造出一种优雅的用户体验。 在React Native中,通常的ScrollView组件并不...

    ios-两张图片的图片轮播.zip

    我们需要将UIPageControl的numberOfPages设置为图片的数量,并在UIScrollView的代理方法`scrollViewDidScroll:`中更新UIPageControl的currentPage,使其与ScrollView的当前显示页保持一致。 代码示例: ```swift ...

Global site tag (gtag.js) - Google Analytics