设为首页 加入收藏

TOP

你真的了解UIScrollView吗?(一)
2017-10-13 09:46:26 】 浏览:7714
Tags:真的 了解 UIScrollView

一:首先查看一下关于UIScrollView的定义

NS_CLASS_AVAILABLE_IOS(2_0) @interface UIScrollView : UIView <NSCoding>

//表示UIScrollView滚动的位置(就是内容左上角与scrollView左上角的间距!!)
@property(nonatomic)         CGPoint                      contentOffset;                  // default CGPointZero
//表示UIScrollView内容的尺寸,滚动范围
@property(nonatomic)         CGSize                       contentSize;                    // default CGSizeZero
//在UIScrollView的四周增加额外的滚动区域,一般用来避免scrollView的内容被其他控件挡住
@property(nonatomic)         UIEdgeInsets                 contentInset;            
//委托       
@property(nullable,nonatomic,weak) id<UIScrollViewDelegate>        delegate;                       // default nil. weak reference
//设置当向一个方向滚动的时候,是否锁住向另外一个方向的滚动
@property(nonatomic,getter=isDirectionalLockEnabled) BOOL directionalLockEnabled;         // 默认值为 NO
//设置UIScrollView是否需要弹簧效果
@property(nonatomic)         BOOL                         bounces;                        // 默认值YES

//是否一直有弹簧效果: 使用范围 ContentSize.height < ScrollView.height 的情况下垂直方向默认情况下是没有弹簧效果的, 但是设置了AlwaysBounceVertical = YES的时候就会让在这种情况下仍然有弹簧效果
@property(nonatomic)         BOOL                         alwaysBounceVertical;           // 默认值 NO
@property(nonatomic)         BOOL                         alwaysBounceHorizontal;         // 默认值 NO

//控制控件是否整页翻动 默认值为NO
@property(nonatomic,getter=isPagingEnabled) BOOL          pagingEnabled;                 
//设置UIScrollView是否能滚动
@property(nonatomic,getter=isScrollEnabled) BOOL          scrollEnabled;                  //默认值 YES
//是否显示水平滚动条
@property(nonatomic)         BOOL                         showsHorizontalScrollIndicator; // 默认值YES
//是否显示垂直滚动条
@property(nonatomic)         BOOL                         showsVerticalScrollIndicator;   // 默认值YES

//设置滚动条到scrollView上左下右的边距,只有下和右有效
// 参数1: 设置x值无效
// 参数2: 设置y值无效
// 参数3: 设置下面的距离
// 参数4: 设置右边的距离
@property(nonatomic)         UIEdgeInsets                 scrollIndicatorInsets;  

// 设置滚动条的风格
// .Default  (默认)灰色
// .Black    黑色的滚动条
// .Whitr    白色的滚动条        
@property(nonatomic)         UIScrollViewIndicatorStyle   indicatorStyle;                 // 默认值 UIScrollViewIndicatorStyleDefault

// // 设置手指放开后的减速率
@property(nonatomic)         CGFloat                      decelerationRate NS_AVAILABLE_IOS(3_0);

//意思是需要动画 但是时间是苹果自己定义的第一个参数是你要滚动到的位置 第二个参数是是否要动画效果!
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated; 

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated;         // scroll so rect is just visible (nearest edges). nothing if rect completely visible

//短暂的显示一下状态条,当你将scrollView调整到最上面时,需要调用一下该方法
- (void)flashScrollIndicators;         

//只读,一旦用户开始触摸视图(也许还没有开始拖动),该属性值为YES
@property(nonatomic,readonly,getter=isTracking)     BOOL tracking;        
//只读,当用户开始拖动(手指已经在屏幕上滑动一段距离了),该属性值为YES
@property(nonatomic,readonly,getter=isDragging)     BOOL dragging;        
//只读,当用户松开手指,但视图仍在滚动时,该值返回YES
@property(nonatomic,readonly,getter=isDecelerating) BOOL decelerating;    

//是否推迟触屏手势处理,默认值为YES。设置为YES的时候,系统在确定是否发生scroll事件之后,才会处理触屏手势,否则,则会立即调用touchesShouldBegin:withEvent:inContentView:方法
@property(nonatomic) BOOL delaysContentTouches;      

//假如你设置canCancelContentTouches为YES,那么当你在UIScrollView上面放置任何子视图的时候,当你在子视图上移动手指的时候,UIScrollView会给子视图发送touchCancel的消息。而如果该属性设置为NO,ScrollView本身不处理这个消息,全部交给子视图处理 默认值YES
@property(nonatomic) BOOL canCancelContentTouches;    

//如果返回值为 yes , touch 事件传给子视图;如果为 no , touch 事件不传给子视图
- (BOOL)touchesShouldBegin:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event inContentView:(UIView *)view;

- (BOOL)touchesShouldCancelInContentView:(UIView *)view;

// 设置最小的缩放倍数,默认值1.0
@property(nonatomic) CGFloat minimumZoomScale; 
//
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇iOS获取app图标和启动图片名字(A.. 下一篇iOS - 数组(NSArray)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目