当前位置: 首页 > 科技观察

UIScrollView类常用属性方法

时间:2023-03-11 22:54:00 科技观察

[java]viewplaincopyCGRectbounds=[[UIScreenmainScreen]applicationFrame];UIScrollView*scrollView=[[UIScrollViewalloc]initWithFrame:bounds];创建滚动视图后,可以将另一个视图的内容粘贴到滚动视图的空页面上。这次创建一个滚动内容窗口:[java]viewplaincopy[scrollViewaddSubview:myView];您必须给出内容的实际大小,以便滚动视图知道滚动范围:[java]viewplaincopyscrollView.contentSize=myView.frame.size;要启用缩放功能,需要调整视图的两个属性,即maximumZoomScale和mininumZoomScale。这允许用户使用捏合手势调整内容大小:[java]viewplaincopyscrollView.maxinumZoomScale=2.0;//allows2xmagnificationscrollView.mininumZoomScale=0.5;//allowsmagnificationupto0.5x要启用缩放,您还需要增加一个UIScrollViewDelegate委托,它使用名为viewForZoomingScrollView的方法进行响应。此方法将返回用于缩放的UIView对象:[java]viewplaincopyscrollView.delegate=self;-(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView{retutnmyView;}Tips:对于大比例数据,一开始可以使用比实际尺寸(1.0)低的缩放比例,以便用户可以平滑地放大。2.属性除了上面使用的缩放属性外,滚动视图还有其他属性可以让您微调真实内容的行为。您可以通过多种方式自定义UIScrollView类。以下属性是最常用的。1.indicatorStyle指定要使用的滚动条指示器的类型。默认行为是在白色边框上绘制黑色滚动条,这适用于大多数背景。可用样式如下:[java]viewplaincopyUIScrollViewIndicatorStyleDefaultUIScrollViewIndicatorStyleBlackUIScrollViewIndicatorStyleWhite2.contentOffset一个CGPoint结构体,它包含了要显示的内容相对于窗口左上角的偏移量。默认是从0×0开始,但是你也可以把显示内容放在其他位置。3.directionalLockEnabled的默认行为是允许用户同时水平和垂直滚动。将此属性设置为YES会将用户的滚动行为锁定为横向或纵向,具体取决于初始手势。4.bounces当用户到达滚动区域的边缘时,此功能允许用户稍微拖动到边界外。当用户松开手指时,这个区域会像橡皮筋一样弹回原来的位置,给用户一个可见的提示,他已经到达了文档的开头或结尾。如果不希望用户滚动超出可见内容,可以将此属性设置为NO。5.bouncesZoom类似于bounces选项,该方法可以使用户的缩放操作超出最大或最小缩放级别,然后在范围内弹回。如果您不希望用户能够缩放到您指定的范围之外,请将此属性设置为NO。6.pagingEnabled开启分页功能后,滚动视图被分割成多个独立的部分,第二个用户的滚动体验变成了翻页。您可以使用此属性来翻页。3、delegate方法可以给scrollview分配一个delegate,在特定的时刻会通知下面的delegate方法。[java]viewplaincopy-(void)scrollViewDidScroll:(UIScrollView*)scrollView;//视图滚动时会收到通知。包含指向滚动视图的指针,可以从中读取contentOffset属性以确定它已滚动到的位置。[java]viewplaincopy-(void)scrollViewWillBeginDragging:(UISCrollView*)scrollView;//当用户***向某个方向拖动时得到通知。此方法将获取作为参数传递的滚动视图指针,也可以从中读取contentOffset属性。[java]viewplaincopy-(void)scrollViewDidEndDragging:(UIScrollView*)scrollViewwillDecelerate:(BOOL)decelerate;//当用户抬起并拖动到手指时得到通知。您还将获得一个布尔值,用于报告滚动视图是否需要在报告其最大位置之前减速。[java]viewplaincopy-(void)scrollViewWillBeginDecelerate:(UIScrollView*)scrollView;//当用户抬起手指,view需要继续移动时,会通知他。这个方法可以用来读取contentOffset属性来判断用户最后一次抬起手指时滚动到的位置,虽然这个位置并不构成滚动条的最终停止位置。[java]viewplaincopy-(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView;//当上述减速完成,滚动视图停止时得到通知。收到此通知后,滚动视图的contentOffset属性会反映滚动条最终停止的位置。[java]viewplaincopy-(void)scrollViewDidEndZooming:(UIScrollview*)scrollViewwithView:(UIView*)viewatScale:(float)scale;//当用户缩放内容时,会通知他。比例因子表示为浮点值,作为参数传入。[java]viewplaincopy-(BOOL)scrollViewShouldScrollToTop:(UIScrollView*)scrollView;-(void)scrollViewDidScrollToTop:(UIScrollView*)scrollView;//当用户点击出iPhone状态栏时,scrollviewdelegate可以判断是否视图向后滚动开始。OK,总结完了,后面会写一个翻页的例子,敬请期待。属性函数CGPointcontentOffSet监听当前滚动位置CGSizecontentSize滚动范围的大小UIEdgeInsetscontentInsetview在scrollView中的位置iddelegatesettingprotocolBOOLdirectionalLockEnabled指定控件是否只能在一个方向滚动BOOLbounces控制是否控件遇到边框BounceBOOLalwaysBounceVertical控制垂直方向是否碰到边框BOOLalwaysBounceHorizo??ntal控制水平方向是否碰到边框弹跳BOOLpagingEnabled控制控件是否整页翻转BOOLscrollEnabled控制控件是否可以滚动BOOLshowsHorizo??ntalScrollIndicator控制是否显示水平滚动条BOOLshowsVerticalScrollIndicator控制是否显示垂直滚动条UIEdgeInsetsscrollIndicatorInsets指定滚动条在scrollerView中的位置UIScrollViewIndicatorStyleindicatorStyle设置滚动条样式floatdecelerationRate改变scrollerView减速点的位置BOOLtracking监控当前目标是否被跟踪BOOLdragging监控当前目标是否被拖动BOOLdecelerating监控当前目标是否减速。BOOLdelaysContentTouches控制视图是否延迟调用滚动方法BOOLcanCancelContentTouches控制控件是否触摸取消触摸事件。缩放时控件是否弹跳BOOLzooming判断控件大小是否在变化BOOLzoomBouncing判断缩放是否正在进行BOOLscrollsToTop控件滚动到顶部