UIScrollView
2015-06-05 22:09
579 查看
UIScrollView
UIScrollView重中之重
一定要设置contentSize属性,ScrollView才能进行视图的滚动// 设置contentsize self.scrollView.contentSize = CGSizeMake(size);
如果用storyboard创建UIScrollView时,UIScrollView会自动创建两个子控件
HorizontalScrollIndicator 横向滑动条VerticalScrollIndicator 竖向滑动条
NSLog(@"%@", self.scrollView.subviews); 打印结果: ( "<UIImageView: 0x7fc02bd2e140; frame = (297.5 293; 2.5 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x7fc02bd2dda0>>", "<UIImageView: 0x7fc02bd2c6d0; frame = (293 297.5; 7 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x7fc02bd29290>>", )
如果设置了其显示为NO,那么UIScrollView的子控件数组中就不会有这两个子控件的
self.scrollView.showsHorizontalScrollIndicator = NO; self.scrollView.showsVerticalScrollIndicator = NO;
用代码创建的UIScrollView,不会有这个两个子控件,但是显示的时候会有的
contentOffset
contentOffset:位移。表示 内容的左上角与ScrollView的左上角的X.Y的差值
// x向右位移100, y向下位移100 self.scrollView.contentOffset = CGPointMake(100, -100);
contentIntset
类似于Android的padding移动后,内容将不能弹回原点(ScrollView的0,0,0,0),给ScrollView更大的滑动区域
// 表示上下左右各有20的padding值 self.scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20);
scrollView的代理UIScrollViewDelegate
首先要设置代理代理方法
// 设置代理,但是self必须遵循协议UIScrollViewDelegate self.scrollView.delegate = self; // 代理方法 // 正在滑动 - (void)scrollViewDidScroll:(UIScrollView *)scrollView; // 正在滑动缩放 - (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2); // 即将开始拖拽 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView; // 即将结束拖拽 - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0); // 结束拖拽 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; // 滑动即将结束,滑动惯性即将减速的时候(如果立即停止了,有可能就不会调用) - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView; // 滑动结束,滑动惯性减速的时候(如果立即停止了,有可能就不会调用) - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView; // 缩放,返回需要缩放的视图,需要配合下面两个方法使用 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView; self.scrollView.minimumZoomScale = 0.2; self.scrollView.maximumZoomScale = 1.0; // 即将开始缩放 - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view NS_AVAILABLE_IOS(3_2); // 即将结束缩放 - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale; // 是否可以滑动到顶部 - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView; // 已经滑动到顶部 - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;
弹簧效果
// 关闭弹簧效果 self.scrollView.bounces = NO;
当scrollView为单页时,不显示UIPageControl控件
// 方式一:直接设置pageCotrol的属性 self.pageCotrol.hidesForSinglePage = YES; // 方式二:根据当前的scrollView的子控件数量来设置pageCotrol的hidden self.pageCotrol.hidden = self.scrollView.subviews.count <= 1;
相关文章推荐
- 内核中的中断函数request_irq()
- quick接入SDK
- [GUI] QT事件与X11的关系
- UINavigationController 导航控制器
- leetcode_PermutationSequence
- ActionScript 3.0 学习(二) Flash Builder找不到所需版本的Adobe Flash Player
- NGUI使用4——创建动态字体
- NGUI使用3——制作图集&自定义按钮&切换按钮图片
- NGUI使用2——Button -- 按钮
- NGUI使用1——label
- UI进阶 —— 收起键盘方法
- UIGestureRecognizer 六种手势的用法 - iOS - UI基础知识总结6
- 一次性移除一个 UIView 所有子视图的方法
- HDU Children’s Queue
- HDU 3836 Equivalent SetsTarjan+缩点)
- 精美UI欣赏
- java 优先队列 PriorityQueue<E>
- UITableView_6-团购实例,刷新数据,代理实现,GCD方法使用
- Android中的volley_11_Request
- DuiLib : CControlUI->SetAttribute(L"pos"后, 属性不生效的问题