zoukankan      html  css  js  c++  java
  • ios之UIScrollView

    UIScrollView 

    很多ios的应用软件都会滚动显示单个或多个图片,UIScrollView控件主要就是用来

    满足这种需求的,展示一张超出屏幕的图片

     UIScorllView控件有三个与显示相关的重要属性:contentSize、contentInset和contentOffSet。

         UIScrollView *scrollView=[[UIScrollView alloc] init];

      UIImageView *imageView=[[UIImageView alloc] initWithImage: [UIImage imageNamed:@"1.jpg"]];

    1. 属性contentSize表示UIScrollView中内容视图的大小,返回的是一个CGSize结构体

      类型,该结构体包含width和height两个成员

      scrollView.contentSize = imageView.frame.size;

      此时运行程序,可见只能显示图片的一部分,然后选中图片可以任意移动图片,实现

      滚动屏幕的效果。

    2. 属性contentInset用于在UIScrollView控件中的内容视图周围添加边距,返回的是一

      个UIEdgeInsets结构体类型,该结构体包含top、left、bottom和right四个成员,表示

      四个边距,这里设置上边距和左边距30个像素,

      scrollView.contentInset = UIEdgeInsetsMake(30, 30, 0,0);

      运行程序,滚动图片可见内容视图离上边和左边都有一个空白的边距

    3 .属性contentOffSet是内容视图坐标原点和UIScrollView坐标原点的偏移量,可以改

      变显示内容的显示区域,该属性返回一个CGPoint结构体类型

     其他属性

     设置反弹

     scrollView.bounces = NO;

    设置滚动条的样式

      [scrollView setIndicatorStyle:UIScrollViewIndicatorStyleBlack];

    设置是否显示平行滚动条

      scrollView.showsHorizontalScrollIndicator = NO;

    设置是否显示垂直滚动条

      lscrollView.showsVerticalScrollIndicator = NO;

     

     

    三张图片的滑动

    - (void)viewDidLoad

    {

        [super viewDidLoad];

        UIScrollView *scrollView=[[UIScrollView alloc] init];

        CGRect frame=self.view.frame;

        //设置大小和位置   

         scrollView.frame=frame;

       //加载图片

        UIImage *image1=[UIImage imageNamed:@"1.jpg"];

        UIImage *image2=[UIImage imageNamed:@"2.jpg"];

        UIImage *image3=[UIImage imageNamed:@"3.jpg"];

        self.array=@[image1,image2,image3];    CGSizesize=CGSizeMake(self.array.count*self.view.frame.size.width,self.view.frame.size.height);

        //显示内容大小

        scrollView.contentSize=size;

     

        for(int i=0;i<self.array.count;i++)

           

        {

            UIImageView *imageView=[[UIImageView alloc] initWithImage:self.array[i]];

            imageView.contentMode=UIViewContentModeScaleAspectFit;

          //图片显示的区域       

           imageView.frame=CGRectMake(i*self.view.frame.size.width,0,self.view.frame.size.width, self.view.frame.size.height);

          [scrollView addSubview:imageView];

        }

        scrollView.pagingEnabled=YES;

        [self.view addSubview:scrollView];

    }

     

     

     

    实现两指缩放功能

    1.要遵守<UIScrollViewDelegate>协议

    2.方法里面给self.delegate赋值    self.scrollView.delegate = self;

    3.实现方法  //那张图片需要缩放

         - (UIView *)viewForZoomingInScrollView:(UIScrollView*)scrollView

        {

         Return self.imageView;

      }

      在viewDidLoad里设置可以缩放的比例

       scrollView.minimumZoomScale = 0.1;

       scrollView.maximumZoomScale = 1.0;

    完整代码:

    #import "TRViewController.h"

    @interface TRViewController () <UIScrollViewDelegate>

    @property (nonatomic, strong)UIImageView *imageView;

    @property (nonatomic, strong)UIScrollView *scrollView;

    @end

    - (void)viewDidLoad

     {

       [super viewDidLoad];

      UIScrollView *scrollView = [[UIScrollViewalloc]init];

       self.scrollView = scrollView;

       //添加显示内容

       UIImageView *imageView=[[UIImageViewalloc]initWithImage:[UIImage imageNamed:@"qwer.jpg"]];

      self.imageView = imageView;

      [self.scrollView  addSubview:imageView];

      self.scrollView.frame = self.view.frame;

      //将self.scrollView添加到父视图

      [self.viewaddSubview:self.scrollView];

      //设置scrollView显示内容的大小

      self.scrollView.contentSize = imageView.frame.size;

       self.scrollView.contentInset = UIEdgeInsetsMake(20, 20,0,0);

      //scrollView的其他属性

       //设置反弹

       self.scrollView.bounces = NO;

       //设置滚动条的样式.

      [self.scrollView  setIndicatorStyle:UIScrollViewIndicatorStyleBlack];

      //设置是否显示平行滚动条

      self.scrollView.showsHorizontalScrollIndicator = NO;

      //设置是否显示垂直滚动条

      self.scrollView.showsVerticalScrollIndicator = NO;

      //给scrollView的委托赋值

      self.scrollView.delegate = self;

      //设置可以缩放的比例

      self.scrollView.minimumZoomScale =0.1

      self.scrollView.maximumZoomScale = 1.0;

    }

     //实现方法 那张图片需要缩放

     - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

    {

       Return self.imageView;

    }

    @end

  • 相关阅读:
    ASP.NET编程的十大技巧
    ADO.NET实用经验总结(5大对象访问数据库)
    一些讲C#3.0 的好文章收集
    新打开窗口,MD5加密,实体类方式保存在Session中,获得系统根路径,分页,动态获取XML数据到页面
    System.Drawing.Color.FromArgb(144,238,255);
    重要社区链接(资源技术网站)
    case when factsqy is NULL then '0' when factsqy is NOT NULL then factsqy end as factqtys
    了解Linq之前需要知道的一些概念
    sql left out join http://hi.baidu.com/llscompazz/blog/item/dc5e23d9ce2b62eb39012fb4.html
    正則表達式驗證通用方法
  • 原文地址:https://www.cnblogs.com/1079062429lm/p/4792114.html
Copyright © 2011-2022 走看看