IOS中UIScrollView的详细使用

UIScrollView 是可以滚动的View

要想让UIScrollView可以滚动,必须设置UIScrollView的contentSize

  • contentSize : 表示UIScrollView可以滚动的范围
  • scrollEnabled : NO 表示不可滚动

UIScrollView 常用属性

  1. contentOffset
    1.1 用来描述UIScrollView滚动位置, 就是UIScrollView与内容左上角的间距值.

1.2 我们如果想移动UIScrollView的内容的位置的话,我们可以修改此属性

  1. contentInsets
    2.1 该属性用来在UIScrollView的四周增加额外的滚动区域,一般用来避免scrollView的内容被其他控件挡住

2.2 如下图的黄色边就是我们设置的contentInset 10

self.scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10);

showsHorizontalScrollIndicator 是否显示横向滚动条 , type bool
showsVerticalScrollIndicator 是否显示纵向滚动条, typebool

滚动条也是UIScrollView的子控件

获取最后一个子控件

[self.scrollView.subviews lastObject];

UIScrollView代理

如何成为UIScrollView的代理呢?

  • 前提,代理对象需要遵守协议UIScrollViewDelegate
  • 先把代理对象告诉UIScrollView , 如下,把当前controller当做UIScrollView的代理
self.scrollView.delegate = self;
  • 实现方法, 比较常用的是下面几个
/**
 * 只要拖拽就会调用这个代理方法
 */
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"拖动了-----");
}

/**
 开始拖动的时候调用
 */
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    NSLog(@"scrollViewWillBeginDragging----");
}

/**
    拖动完成的时候调用
 */
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    NSLog(@"停止拖拽了---");
}

/**
    此方法不一定会每次拖动都调用,只会再内容缓慢的停止的时候才会调用
 */
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"缓慢停止---");
}

IOS中代理规律

更多内容请查看
http://www.liyajie.net/ios-uiscrollview/

http://www.liyajie.net/

原文地址:https://www.cnblogs.com/liyajie/p/5668500.html