UIScrollView
是可以滚动的View
要想让UIScrollView可以滚动,必须设置UIScrollView的contentSize
contentSize
: 表示UIScrollView可以滚动的范围scrollEnabled
:NO
表示不可滚动
UIScrollView
常用属性
contentOffset
1.1 用来描述UIScrollView
滚动位置, 就是UIScrollView与内容左上角的间距值.
1.2 我们如果想移动UIScrollView
的内容的位置的话,我们可以修改此属性
contentInsets
2.1 该属性用来在UIScrollView的四周增加额外的滚动区域,一般用来避免scrollView的内容被其他控件挡住
2.2 如下图的黄色边就是我们设置的contentInset
10
self.scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10);
showsHorizontalScrollIndicator
是否显示横向滚动条 , typebool
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中代理规律