ScrollView常用的属性设置
//设置内容尺寸 // CGFloat contentH=self.lastBtn.frame // .origin.y+self.lastBtn.frame.size.height+10; //10是底部的间距 CGFloat contentH=CGRectGetMaxX(self.lastBtn.frame)+10; self.scrollView.contentSize=CGSizeMake(0,contentH); //增加额外的滚动区域(在顶部增加64的区域,在底部增加44的区域) self.scrollView.contentInset=UIEdgeInsetsMake(64, 0, 44, 0); //设置一开始的滚动位置(往下滚动64) self.scrollView.contentOffset=CGPointMake(0, 64);
// 隐藏水平滚动条
self.scrollView.showsHorizontalScrollIndicator = NO;
ScrollView的代理(delegate)
当UIScrollView 发生一系列的滚动操作时,会自动通知它的代理(delegate)对象,
给它的代理发送相应的消息,让代理得知它的滚动情况。
代理的用途
1.监听的思想:让一个对象A监听另一个对象的状态(谁监听,谁做代理)
2.通知的思想:一个对象B状态发生了改变做了某些事情,想通知另一个对象A.
//设置代理 self.scrollView.delegate=self; //设置最大和最小的缩放比例 self.scrollView.maximumZoomScale=2.0; self.scrollView.minimumZoomScale=.2;
//继承<UIScrollViewDelegate> @interface MJViewController () <UIScrollViewDelegate> /** * 当用户开始拖拽scrollView时就会调用 */ - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { NSLog(@"开始拖拽-----"); } /** * 只要scrollView正在滚动,就会调用 */ - (void)scrollViewDidScroll:(UIScrollView *)scrollView { NSLog(@"----正在滚动--%@", NSStringFromCGPoint(scrollView.contentOffset)); } /** * 当用户使用捏合手势的时候会调用 * * @return 返回的控件就是需要进行缩放的控件 */ - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { NSLog(@"----开始缩放"); return self.minionView; } /** * 正在缩放的时候会调用 */ - (void)scrollViewDidZoom:(UIScrollView *)scrollView { NSLog(@"----正在缩放"); }