UIScrollView

用法

添加内容到scrollview

设置(CGSize)contentSize

self.scrollView.contentSize = CGSizeMake(100, 400);

//如果想禁止某个方向滚动,设置0即刻。

self.scrollView.contentSize = CGSizeMake(0, 400);

//这也说明了contentSize意义是设置能**滚**多远

其他属性 && 函数

函数

CGRectGetMaxY(frame), view最下面的y值

CGRectGetMaxX(frame)

属性

(UIEdgeInset)contentInset: (UIEdgeInsetMake)(四个方向)

(CGPoint)contentOffSet : CGPointMake(x, y) //偏移量,记录scrollview滚

到哪,即让内容移动的属性

//x,y 是内容左上角基于scrollview左上角的差值 //往左上方偏移为正数,右

下方偏移是负数

self.scrollView.contentOffset = CGPointMake(self.scrollVi

ew.contentOffset.x, 0);

添加动画

[UIView animateWithDuration:0.5 animations:^{

self.scrollView.contentOffset = CGPointMake(self.scrol

lView.contentOffset.x, 0);

}];

//或者

[UIView animateWithDuration:0.5 animations:^{

self.scrollView.contentOffset = CGPointMake(self.scrol

lView.contentOffset.x, 0);

} completion:^(BOOL finished) {

NSLog(@"运行完啦!");

}];

//或者

[self.scrollView setContentOffset:offset anmited:YES];

注意 不能直接修改OC对象的结构体里的成员: _scrollView.contentOffset.x =

5; 这是错的. CGPoint point = xx; point.x = 5.0;//这是对的,不是对象结构体

滚动条

滚动条也是scrollview的subview

self.scrollView.showsHorizontalScrollIndicator = NO;

7.4 Delegate of ScrollView

首先将当前view设置为代理才能进行滚动监听

UIScrollView

43

@interface ViewController() <UISCrollViewDelegate>

@property (weak, nonatomic) IBOutlet UISCrollView* scrollView;

@end;

//设置代理

self.scrollView.delegate = self;

//代理函数:

  • (void) scroolViewDidScroll:(UIScrollView*)scrollView {

}

  • (void) scrollViewWillBeginDragging

  • (void) scrollViewDidEndDragging:

  • (void) scrollViewDidEndDecelerating://由于惯性引起的停止滚动

缩放

_scrollView.delegate = self;

//缩放

_scrollView.maximumZoomScale = 1.5;

_scrollView.minimumZoomScale = 0.5;

//代理方法:

  • (UIView*)viewForZoomingInScrollView:(UIScrollView *)scroll

View {

return_imageView;//scrollview的content里面的控件

}

Paging: 分页

  1. 基本使用

self.scrollView.showsHorizontalScrollIndicator = NO;

self.scrollView.pagingEnabled = YES;//scroll的宽度为一页

  1. 优化

如果图片一多,就会出现内存过大问题

通过循环利用来解决:

2.4 UIScrollView

44

  1. 页码指示器:PageControl

整体: uiview -> scrollview + pageControl

UIPageControl *pageControl = [[UIPageControl alloc]init];

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView {

int page = (int)(self.scrollView.contentOffset.x/self.scroll

View.frame.size.width +0.5);

self.pageControl.currentPage = page;

}

//让数组所有对象执行相同方法

[self.scrollView.subviews makeObjectPerformSelector:@selector(re

moveFromSuperView)];

self.pageControl.hideForSinglePage = YES;

悬停

//0706 偏移量达到某高度 [self.view addSubView:Xview];

回到这个高度后,在加到scrollview [self.scrollview addSubBiew:Xview]

下拉放大

if (offsetY <0) {

CGFloat scale = 1- (offSetY/100);

self.imageView.transform = CGAffinTransformMakeScale(scale,

scale);

}

results matching ""

    No results matching ""