·UIScrollView的基本用法
- 將需要展示的內容添加到UIScrollView中
- 設置UIScrollView的contentSize屬性,告訴UIScrollView所有內容的尺寸,也就是告訴它滾動的範圍.@property(nonatomic) CGSize contentSize;
- 這個屬性用來表示UIScrollView內容的尺寸,滾動範圍(能滾多遠)
- @property(nonatomic) CGPoint contentOffset;
- 這個屬性用來表示UIScrollView初始偏移的位置
- @property(nonatomic) UIEdgeInsets contentInset;
- 這個屬性能夠在UIScrollView的4周增加額外的滾動區域
- (void)viewDidLoad
{
[super viewDidLoad];
// 設置UIScrollView的滾動範圍
self.scrollView.contentSize=self.imageView.bounds.size;
//設置UIScrollView的偏移位置
self.scrollView.contentOffset=CGPointMake(-10, -20);
//設置UIScrollView的邊距
self.scrollView.contentInset=UIEdgeInsetsMake(10, 20, 30, 40);
}
注:1、偏移位置中,當數都爲負數時,是向內側偏移。都爲正數時,則向外側偏移。
2、邊距的默認方向是逆時針方向。即上左下右
UIScrollView的其它屬性
//設置是否需要彈簧效果
self.scrollView.bounces=NO;
//設置UIScrollView是否能滾動
// self.scrollView.scrollEnabled=NO;
//設置水平滾動條是否顯示
self.scrollView.showsHorizontalScrollIndicator=NO;
//設置垂直滾動條是否顯示
self.scrollView.showsVerticalScrollIndicator=NO;
UIScrollView無法滾動的解決辦法
- 如果UIScrollView無法滾動,可能是以下原因:
- 沒有設置contentSize
- scrollEnabled = NO
- 沒有接收到觸摸事件:userInteractionEnabled = NO
- 沒有取消autolayout功能(要想scrollView滾動,必須取消autolayout)
- … …
- 圖片縮放的代碼實現
實現捏合手勢放大縮小的步驟1、
//設置代理
self.scrollView.delegate = self;
//設置最大和最小的縮放比例
self.scrollView.maximumZoomScale = 2.0;
self.scrollView.minimumZoomScale = 0.5;2、調用代理的方法
/**
*
當用戶使用捏合手勢的時候調用
*
* @param scrollView
*
* @return 返回的就是要縮放的是哪一個控件*/
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return self.imageView; }
scrollView的代理方法
很多時候,我們想在UIScrollView正在滾動或 滾動到某個位置 或者 停止滾動 時做一些特定的操作
要想完成上述功能,前提條件就是能夠監聽到UIScrollView的整個滾動過程
當UIScrollView發生一系列的滾動操作時,會自動通知它的代理 (delegate)對象,給它的代理髮送相應的消息,讓代理得知它的滾動 情況
也就是說,要想監聽UIScrollView的滾動過程,就必須先給UIScrollView設置一個代理對象,然後通過代理得知UIScrollView的滾 動過程
一、設置scrollView的代理
1、先讓controller遵守UIScrollViewDelegate協議
2、設置scrollView的代理爲controller
3、設置代理的方法(代理的名字都以類的名字開始,代理的方法也是 以對象的名字開始)
#pragma mark - scrollView的代理方法
//開始滾動
- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{
NSLog(@"scrollViewWillBeginDragging");
}
//正在滾動
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"scrollViewDidScroll");
NSLog(@"%f ---%f",scrollView.contentOffset.x,scrollView.contentOffset.y);
}
//結束滾動
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollViewwillDecelerate:(BOOL)decelerate
{
NSLog(@"scrollViewDidEndDragging");
}