zoukankan      html  css  js  c++  java
  • scrollView的讲解

    今天就讲下UIScrollView的一些事情,这个可以拖动的组件无论在应用还是游戏开发都会经常用到,所以我们就一定要更加熟悉它了。下面我们开始下手咯。

    (1)初始化

    一般的组件初始化都可以alloc和init来初始化,上一段代码初始化。

    view plain

    UIScrollView *sv  =[[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0,self.view.frame.size.width, 400)]; 

    一般的初始化也都有很多方法,都可以确定组件的Frame,或者一些属性,比如UIButton的初始化可以确定Button的类型。当然,我比较提倡大家用代码来写,这样比较了解整个代码执行的流程,而不是利用IB来弄布局,确实很多人都用IB来布局会省很多时间,但这个因人而异,我比较提倡纯代码写。

    (2)滚动属性

    UIScrollView的最大属性就是可以滚动,那种效果很好看,其实滚动的效果主要的原理是修改他的坐标,准确的讲是修改原点坐标,而UIScrollView跟其他组件的都一样,有自己的delegate,在.h文件中要继承UIScrollView的delegate然后在.m文件的viewDidLoad设置的delegate为self。如下:

    view plain

    sv.pagingEnabled = YES; 

    sv.backgroundColor = [UIColor blueColor]; 

    sv.showsVerticalScrollIndicator = NO; 

    sv.showsHorizontalScrollIndicator = NO; 

    sv.delegate = self; 

    CGSize newSize = CGSizeMake(self.view.frame.size.width * 2, self.view.frame.size.height); 

    [sv setContentSize:newSize]; 

    [self.view addSubview: sv]; 

    在上面的代码中,一定要设置UIScrollView的pagingEnable为YES。不然你就是设置好了其他属性,它还是无法拖动,接下去的分别是设置背景颜色和是否显示水平和竖直拖动条,最后最重要的设置他的ContentSize,ContentSize的意思就是它所有内容的大小,这个和它的Frame是不一样的,只有ContentSize的大小大于Frame这样才可以支持拖动。

    (3)结合UIPageControl做新闻翻页效果

    初始化UIPageControl的方法都很简单,就是上面讲的alloc和init,不过大家要记住的一点就是如果你定义了全局变量一定要在delloc那里释放掉。

    UIPageControl有一个userInteractionEnabled你可以设置它为NO。就是点击的时候它不调用任何方法。然后设置它的currentPage 为0,并把它加到view上去。

    接下来在UIScrollView的delegate方法:

    view plain

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView;   

    在这里你可以写上关于UIPageControl的页面设置的算法。如下

    view plain

    int index = fabs(scrollView.contentOffset.x) /scrollView.frame.size.width; 

    pageControl.currentPage = index; 

    (4)其他的

    UIScrollView还支持处理缩放的动作,比如图片的缩小或者地图。

    但是必须实现它的委托viewForZoomingInScrollView:

    scrollViewDidEndZooming:withView:atScale:然后它的两个属性maximumZoomScale和minimumZoomScale 要不一样。这样就能基本实现图片的缩放了。

    好了,今天讲UIScrollView和UIPageControl就到这里咯,希望大家都能理解。欢迎拍砖。

    附加一个photo的利用UIScrollView实现的demo给大家:http://up.2cto.com/2011/1130/20111130025112243.zip

  • 相关阅读:
    Beta 阶段计划
    alpha阶段总结
    冲刺第十天 12.6 THU
    冲刺第九天 12.5 WED
    冲刺第八天 12.4 TUE
    冲刺第七天 12.3 MON
    冲刺第六天 11.30 FRI
    正弦交流电有效值系数sqrt(2)的推导
    关于STM32官方FOC库函数扇区分析中’131072’系数的解释
    闭环系统零、极点位置对时间响应性能指标的影响
  • 原文地址:https://www.cnblogs.com/zhangyuqing/p/3621733.html
Copyright © 2011-2022 走看看