今天学习了UIScrollView,在UIScroll中有contentSize方法,contentSize在 UIScrollView里面的尺寸, frame.size在 UIImageView控件的尺寸。对于代码实现UIScroll要注意实例化UIScroll后,需要设置控件尺寸。即:
_scrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(32.5, 100, 300,300)];这句等号前是一个在接口文件里的属性定义,@property(nonatomic,strong)UIScrollViewalloc *scrollView;
UIScrollView本身不能滚动,相当一个容器,滚动的是图片。所以需要以实例化方式同样步骤生成一个承载图的UIImageView。即:
_imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(i*300, 0, 300,300)];
给图片控件一个图片:
NSString *str=[NSStringstringWithFormat:@"%i.jpg",i+1];
_imageView.image=[UIImageimageNamed:str];
最后给滚动控件加上图片控件
[_scrollView addSubview:_imageView];
此时,要给滚动文件加尺寸:
_scrollView.contentSize=CGSizeMake(,,,);
最后给页面加上滚动控件:
[self.viewaddSubview:_scrollView];
滚动控件是否可以翻页的方法: _scrollView.pagingEnabled = YES;这个不是必要实现的
UIScrollView是有代理协议的<UIScrollViewDelegate>遵守这个协议
_scrollView.delegate=self;
必要实现方法:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return_imageView;//返回View
}
其他方法:
//从那个坐标开始: _ScrollView.contentOffset=CGPointMake(200, 200);
//向哪里移动,哪里空出多少,坐标设置上-左-下-右
_ScrollView.contentInset=UIEdgeInsetsMake(0, 100, 100, 100);
//是否显示水平尺度,即下方的横向滚动条
_ScrollView.showsHorizontalScrollIndicator=NO;
//是否显示垂直尺度,即下方的纵向滚动条
_ScrollView.showsVerticalScrollIndicator=NO;
//代码块封装自动滚动
[UIViewanimateWithDuration:1.0fanimations:^{
_scrollView.contentOffset=CGPointMake(100, 300);
}];
// 开始拖拽的时候调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
//结束时
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
对于UIPageView
//实例化要设置大小
_PageControl=[[UIPageControlalloc]initWithFrame:CGRectMake(32.5, 330, 300, 100)];
//设置开始和当前页
_PageControl.currentPage=0;
_PageControl.numberOfPages=8;
//设置颜色默认白色不会显示出来
_PageControl.currentPageIndicatorTintColor=[UIColorblueColor];//当前页
_PageControl.pageIndicatorTintColor=[UIColorblackColor];//未选页
//入页面,并前置控件
[self.viewaddSubview:_PageControl];
[self.viewaddSubview:_scrollView];
[self.viewbringSubviewToFront:_PageControl];
练习:http://my.oschina.net/jlong/blog/472713