UIScrollView 是可以滾動的View UIview是不可以滾動的,但是他的子類UIScrollView拓展了滾動方面的功能
UIScrollView是所有滾動視圖的基類,UITableView,UItextView等視圖都集成與該類
使用場景:一個屏幕顯示不了太大的圖片;內容太多;滾動頭條(圖片);相冊等
UIScrollView的核心功能
1.滾動:contentSize大於frame.size 的時候,能夠滾動
2.縮放:自帶縮放,可以指定縮放倍數
[1]UIScrollView滾動相關屬性
1.contentSize 定義內容區域大小,決定是否能夠滾動
2.contentOffset 視圖左上角距離坐標原點的偏移量
3.scrollsToTop 滑動到頂部(點擊狀態條的時候,也就是屏幕最上邊)
4.pagingEnabled 是否整平滾動
5.bounces 邊界是否回彈
6.scorllEnabled 是否能夠滾動
7.showHorizontalScrolllndicator 控制是否顯示水平方向的滾動條
8.showVerticalScrollindicator 控制是否顯示垂直方向的滾動條
9.alwaysBounceVertical 控制垂直方向遇到邊框是否反彈
10.alwaysBounceHorizontal 控制水平方向遇到的邊框是否反彈
[2]UIScrollView縮放相關屬性
1.minimumZoomScale 縮小的最小比例
2.maximumZoomScale 放的的最大比例
3.zoomScale 設置變化比例
4.zooming 判斷是否正在進行縮放的反彈
5.bouncesZoom 控制縮放的時候是否反彈
注意:要實現縮放,還需要實現delegate, 指定縮放的視圖是誰
[3]UIScrollView滾動代理方法
先設置代理
self.myview.scrollV.delegate = self;
1.返回要縮放的視圖
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.myview.imV;
}
//2.只要視圖偏移發生變化,就觸發這個方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
// NSLog(@"發生了什麼事");
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//3.將要拖拽的時候,觸發這個方法
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"what's happen???");
}
//4.拖拽結束時,觸發這個方法
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"結束了嗎");
}
//5.拖拽完成後減速的時,觸發這個方法
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
NSLog(@"慢點");
}
//6.減速結束時,觸發這個方法
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"怎麼停了呢");
}
//7.當縮放的時候,觸發這個方法
- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2)
{
NSLog(@"大了.小了");
}
//滾動視圖
@property(nonatomic,retain)UIScrollView*scrollVlV;
//傳裡一個圖片
UIImage *image = [UIImage imageNamed:@"s.png"];
//滾動視圖
self.scrollV = [[UIScrollView alloc] init];
self.scrollV.frame = [UIScreen mainScreen] .bounds;
//內容尺寸
self.scrollV.contentSize = image.size;
//是否有彈動效果
self.scrollV.bounces = NO;
//顯示內容坐標
self.scrollV.contentOffset = CGPointMake(900, 700);
//點擊狀態欄置頂
self.scrollV.scrollsToTop = YES;
//能否滾動
self.scrollV.scrollEnabled = YES;
//滾動條,豎向顯示
self.scrollV.showsHorizontalScrollIndicator = YES;
//滾動條,橫向顯示
self.scrollV.showsVerticalScrollIndicator = YES;
//分頁滑動(手在上面滑得時候,圖片跟著滑動到下一頁)如果不設置默認是no
self.scrollView.pagingEnabled = YES;
//如果內容小於bounds,也能有彈動效果
self.scrollV.alwaysBounceHorizontal = YES;
self.scrollV.alwaysBounceVertical = NO;