iOS8 scrollView滚动视图

ScrollView

首先,为什么要使用ScrollView?

说白了,就是由于显示的内容太大,移动设备屏幕太小,让用户拖动或缩放来查看内容。


接下来,介绍主要的一些属性。

contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。 

contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentOffset就是(0 ,480),也就是y偏移了480 。

contentInset是scrollview的contentView的顶点相对于scrollview的位置,例如你的contentInset = (0 ,100),那么你的contentView就是从scrollview的(0 ,100)开始显示 。

CGPoint upperLeftOfVisible = scrollView.contentOffset;//当前显示区域的原点位置

scrollView.bounds,当前显示的区域。

CGRect visibleRect = [scrollView convertRect:scrollView.bounds toView:subview];//滚动视图当前显示的区域的子视图

//注意,这个子视图可能是被缩放过的。


1.建立UIScrollView

拖动建立或者选择一个UIView然后选择“Editor ->  Embed In -> Scroll View”

或者[scrollView addSubview:subview]; //subview是任意的大的UIView

所有的子视图都会使用滚动视图的坐标系。

scrollView.contentSize=CGSizeMake(320,758);

scrollView.contentInset=UIEdgeInsetsMake(64.0,0.0,44.0,0.0);

千万不要忘记设置滚动视图的contentsize!

或者在程序中建立:

    CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame];

       scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect];

       scrollView.contentSize=CGSizeMake(320,758);

2.滚动视图的一些控制选项

滚动是否被启用。

锁定滚动方向为用户首次滚动的方向。

显示水平竖直滚动条。

3.缩放

缩放会影响滚动视图的contentSize和contentOffset,必须设置缩放比例,否则不能工作。

scrollView.minimumZoomScale = 0.5; // 一半的大小

scrollView.maximumZoomScale = 2.0; // 2倍的大小

对于指定的需要缩放的视图,必须设置代理方法。

比如,对scrollView中的一个图片缩放的代码

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

{

    return self.imageView;

}


- (void)viewDidLoad {

    [super viewDidLoad];

    self.scrollView.minimumZoomScale=0.5;

    self.scrollView.maximumZoomScale=6.0;

    self.scrollView.contentSize=CGSizeMake(1280, 960);

    self.scrollView.delegate=self;

}

其他的可以再程序中控制的一些缩放属性和方法

@property (nonatomic) float zoomScale;
- (void)setZoomScale:(float)scale animated:(BOOL)animated; 

 - (void)zoomToRect:(CGRect)zoomRect animated:(BOOL)animated;

4.滚动视图的代理方法(UIScrollViewDelegate)

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView //滚动结束会通知你

- (void)scrollViewDidEndZooming:scrollView withView:(UIView *)view atScale:(CGFloat)scale

注意,如果在新的缩放下重画视图,确保重设它的transform。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值