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 ( @"---" );
}