设为首页 加入收藏

TOP

你真的了解UIScrollView吗?(七)
2017-10-13 09:46:26 】 浏览:7729
Tags:真的 了解 UIScrollView
ageControl.pageIndicatorTintColor = [UIColor blueColor]; // 没有选中的点点的颜色 _scrollPageControl.currentPageIndicatorTintColor = [UIColor yellowColor]; //当前点点的颜色 [_scrollPageControl addTarget:self action:@selector(scrollPageControlAction:)forControlEvents:UIControlEventValueChanged]; // 设置监听事件 _scrollPageControl.highlighted = YES; [self.view addSubview:_scrollPageControl]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - 实现---scrollPageControlAction:监听事件 - (void)scrollPageControlAction:(UIPageControl *) sender { //令UIScrollView做出相应的滑动显示 CGSize viewSize = _userGuideScrollView.frame.size; CGRect rect = CGRectMake(sender.currentPage * viewSize.width, 0, viewSize.width, viewSize.height); [_userGuideScrollView scrollRectToVisible:rect animated:YES]; } #pragma mark - 重写----scrollViewDelegate中的代理方法 实现滑动 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { // 计算偏移量 int index = abs(scrollView.contentOffset.x / scrollView.frame.size.width); // 根据偏移量来设置pageControl _scrollPageControl.currentPage = index; } #pragma mark - 重写----dealloc方法 - (void)dealloc { // 释放属性的内存 _scrollPageControl = nil; _userGuideScrollView = nil; }

 

二:UIScrollView的代理UIScrollViewDelegate

@protocol UIScrollViewDelegate<NSObject>

@optional

//只要滚动了就会触发 
- (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;      

//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时 
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;

//设置放大缩小的视图,要是uiscrollview的subview  
- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;   
 
// 即将开始缩放时调用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view NS_AVAILABLE_IOS(3_2); 

//完成放大缩小时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale;

//如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它  
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;  

//已滚动顶部调用此方法
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;     

@end

 

知识点1:控件悬停效果;当scrollView往上拖拽到某一个位置的时候,控件(testView)悬停到某一个位置,当scrollView往下拉的时候,该控件(testView)又随着scrollView一起移动;

实现思路:当往上拖拽到一定位置的时候(通过计算偏移量来判断),让该控件(testView)添加到self.view上,并设置该控件(testView)的frame固定到该位置,当scrollView再次往回拖拽到该位置的时候,再让该控件(testView)再添加到scrollView上,成为scrollView的子控件

知识点2:顶部图片下拉放大效果;当scrollView

首页 上一页 4 5 6 7 下一页 尾页 7/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇iOS获取app图标和启动图片名字(A.. 下一篇iOS - 数组(NSArray)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目