// 实例化一个ScrollView
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
scrollView.backgroundColor = [UIColor redColor];
// 把ScrollView添加到self.view上
[self.view addSubview:scrollView];
// 加载一张图片
UIImage *image = [UIImage imageNamed:@"macbook_overview_og.jpg"];
// 实例化一个ImageView,并设置它的大小和image的大小一致
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];
imageView.image = image;
// 把ImageView添加到scrollView
[scrollView addSubview:imageView];
// 设置scrollView的contentSize属性
// 这个属性必须在大于scrollView.bounds.size才能滚动
scrollView.contentSize = image.size;
// 自动调整ScrollView的内容的内嵌(有NavigationBar的时候,内容的Top会内嵌64个点)
// self.automaticallyAdjustsScrollViewInsets = NO;
// 内容的内嵌
// scrollView.contentInset = UIEdgeInsetsMake(100, 100, 50, 50);
// 方向锁,如果打开的话,确定了一个方向去滚动之后,另一个方向就不能滚动了
scrollView.directionalLockEnabled = YES;
// 点击状态栏的时候,自动滚动到最上面
scrollView.scrollsToTop = NO;
#if 0
// 内容的偏移量,通常我们都是用它来控制显示(滚动)到哪里
// (100, 0)
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// 2秒之后,滚动到右下角
[scrollView setContentOffset:CGPointMake(image.size.width-[[UIScreen mainScreen] bounds].size.width, image.size.height-[[UIScreen mainScreen] bounds].size.height) animated:YES];
});
#endif
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
CGRect rect = CGRectMake(800, 500, 300, 300);
// 让一个矩形的区域去滚动到屏幕显示的地方
[scrollView scrollRectToVisible:rect animated:YES];
});
// 滚动的开关
// scrollView.scrollEnabled = NO;
// 隐藏或显滚动的指示条
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
// 设置为NO之后就不能拖超出边界了
scrollView.bounces = NO;
}
#pragma mark - UIScrollViewDelegate
// 当UIScrollView滚动的时候会调用这个函数
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
// NSLog(@"%@", NSStringFromCGPoint(scrollView.contentOffset));
// scrollView.dragging // 判断scrollView是否在拖拽
// scrollView.decelerating // 判断scrollView是否在减速的过程中
}
// 将要减速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
NSLog(@"将要减速");
}
// 已经停止减速(滚动)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"scrollView已经停下来了");
}
// 开始拖拽
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"开始拖拽");
}
// 停止拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"停止拖拽");
}
// 返回需要在ScrollView中实现缩放的View
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return [self.view viewWithTag:100];
}
相关文章
- 03-11UI基础视图----UIScrollView总结
- 03-11UI第十七节——UIScrollView
- 03-11UI第十一节——UIActivityIndicatorView
- 03-11UI控件(UIScrollView)
- 03-11第十七节:SQL中的一些常用SQL积累(持续更新)
- 03-11第十章 设计用户界面 之 构建UI布局
- 03-11EasyClick Html UI 第十四节 CSS 盒子模型
- 03-11EasyClick Html UI 第十二节CSS 元素溢出
- 03-11UI第十八节——UITableView
- 03-11第十七节:Scrapy爬虫框架之item.py文件以及spider中使用item