UI学习 第五章 UIScrollView UIPageControl
UIScrollView
添加自定义背景
UIColor
*mycolor = [UIColor
colorWithPatternImage:[UIImage
imageNamed:@"1.jpg"]];
scroll.backgroundColor = mycolor;
1.宏定义(常用)
#define WIDTH [[UIScreen mainScreen] bounds].size.width//主屏幕的宽
#define HEIGHT [[UIScreen mainScreen] bounds].size.height//主屏幕的高
2.初始化时给出frame,相当于设置了scoll的初始状态
UIScrollView
*scroll = [[UIScrollView
alloc]initWithFrame:CGRectMake(10,
20,
WIDTH-20,
HEIGHT-30)];
3.设置允许滑动的范围,如果想要左右滑动,则必须保证此宽大于scroll的frame对应的宽,如果想要上下滑动必须保证此高大于scroll的frame对应的高
scroll.contentSize
=
CGSizeMake(WIDTH+100,
HEIGHT+100);
4.是否允许滚动
scroll.scrollEnabled
=
NO;
5.是否弹簧效果
scroll.bounces
=
NO;
6.获取scoll当前滚动的位置
scroll.contentOffset
=
CGPointMake(10,
10);
NSLog(@"%@",NSStringFromCGPoint(scroll.contentOffset));
7.是否允许整页滚动,如果想要左右整页滑动,要保证contentsize的宽是scrollview frame宽的整数倍,如果要上下整页滑动,要保证contentsize 的高是frame高的整数倍,当下一页露出范围小于整页的一半时,滚回到当前页,当超出一半时,滚动到下一页
scroll.pagingEnabled
=
YES;
8.是否显示滚动条
scroll.showsHorizontalScrollIndicator
=
YES;(水平)
scroll.showsVerticalScrollIndicator =
NO;(垂直)
9.点状态栏时是否允许弹到顶部
scroll.scrollsToTop
=
YES;
10.是否允许缩放(只读)
scroll.zooming
11.两手指捏合
scroll.zoomScale
=
2;
代理方法
1.滑动时调用
-(void)scrollViewDidScroll:(UIScrollView
*)scrollView{
NSLog(@"滑动时调用");
}
2.点击状态栏调用
-(void)scrollViewDidScrollToTop:(UIScrollView
*)scrollView{
点击状态栏调用(scrolltotop = yes)
NSLog(@"到顶了");
}
3.手指放到scrollview上开始滑动时调用
-(void)scrollViewWillBeginDragging:(UIScrollView
*)scrollView{
手指放到scrollview上开始滑动时调用
NSLog(@"调用");
}
4.停止拖拽时调用
-(void)scrollViewDidEndDragging:(UIScrollView
*)scrollView willDecelerate:(BOOL)decelerate{
停止拖拽
NSLog(@"--->停止");
}
5.停止减速时调用(
scrollview不动了)
-(void)scrollViewDidEndDecelerating:(UIScrollView
*)scrollView{
停止减速--scrollview不动了
NSLog(@"不动了");
}
UIPageControl
1.设置页数(可读可写)
page.numberOfPages
=
3;
2.设置当前页(可读可写)
page.currentPage
=
0;
3.设置当前选中点的颜色
page.currentPageIndicatorTintColor
= [UIColor
redColor];
4.设置未选中的点的颜色
page.pageIndicatorTintColor
= [UIColor
blackColor];
5。可以添加事件
[page
addTarget:self
action:@selector(change)
forControlEvents:UIControlEventValueChanged];
重点要理解UIScrollView和各种控件的结合(UISegment,UIPagecontrol)
UIPagecontrol结合
-(void)change{
CGPoint a = {page.currentPage*300,0};
[scroll setContentOffset:a];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
int a = scrollView.contentOffset.x;
int w = scrollView.frame.size.width;
int index = a/w;
page.currentPage = index;
CGPoint a = {page.currentPage*300,0};
[scroll setContentOffset:a];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
int a = scrollView.contentOffset.x;
int w = scrollView.frame.size.width;
int index = a/w;
page.currentPage = index;
}
UISegment结合
-(void)viewchange{
CGPoint p = {seg.selectedSegmentIndex*300,10};
[scroll setContentOffset:p animated:YES];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
CGPoint p = scrollView.contentOffset;
int w = p.x;
int index = w/scrollView.frame.size.width;
seg.selectedSegmentIndex = index;
CGPoint p = {seg.selectedSegmentIndex*300,10};
[scroll setContentOffset:p animated:YES];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
CGPoint p = scrollView.contentOffset;
int w = p.x;
int index = w/scrollView.frame.size.width;
seg.selectedSegmentIndex = index;
}
UIScrollView缩放
1.
_scrollView.delegate
=
self;(设置代理)
_scrollView.minimumZoomScale
=
1;(最小缩放级别)
_scrollView.maximumZoomScale =
3;(最大缩放级别)
2.方法1
告诉scrollView,是哪个子视图要进行缩放
-(UIView
*)viewForZoomingInScrollView:(UIScrollView
*)scrollView{
return _imgView;
return _imgView;
}
方法2 停止缩放时调用
-(void)scrollViewDidEndZooming:(UIScrollView
*)scrollView withView:(UIView
*)view atScale:(CGFloat)scale{
//停止缩放
NSLog(@"调用");
//停止缩放
NSLog(@"调用");
}
方法3 开始缩放时调用
-(void)scrollViewDidZoom:(UIScrollView
*)scrollView{
NSLog(@"---");
NSLog(@"---");
}