UIScrollView 滑动复位】的更多相关文章

需求 在每次打开界面滑动列表都是复位状态(未滑动). 分析 在制作滑动列表时常常会结合UIPanel和UIScrollView 要让滑动列表回到未滑动时的位置,那么就需要改变Panel的Clipping和transform的position 演示 以前做法 以前是保存Panel的初始信息,每时打开面板时再还原 public class CUIShopVIP : CUIController { private UIPanel GridPanel; private UIScrollView Grid…
固定UIScrollView滑动的方向 一般而言,我们通过这两个参数CGRectMake以及contentSize就可以自动的让UIScrollView只往一个方向滚动.但我遇到过非常奇葩的情况,那就是即使设置的CGRectMake以及contentSize没有一点点问题,这个UIScrollView也能够上下左右滚动-_-!!. 为了不依赖于CGRectMake以及contentSize,我们可以通过在代理方法scrollViewDidScroll:中进行限制即可. 没有限制之前的效果: 源码…
原理 如果我们的UI中有滑动列表,并且列表比较长,那么不知道你们是否有这样需求,每次页面打开时,列表的滑动状态都恢复到默认状态. 如果要复位,其实就是修改UIPanel 的属性到初始状态.此组件做的工作就是在初始化时把UIPanel的属性保存起来,在需要时还原初始值,达到复位效果. 组件代码 using UnityEngine; using System.Collections.Generic; /// <summary> /// 方便对UIPanel进行滚动复位 /// 用法: /// va…
UIScrollView --->UIView //创建UIScrollView testScrollView=[[UIScrollView alloc]init]; testScrollView.frame=CGRectMake(0, 0, 320, 200); testScrollView.backgroundColor=[UIColor cyanColor]; //设置UIScrollView的容量 testScrollView.contentSize =CGSizeMake(320*5,…
以下是使用 scheduledTimerWithTimeInterval 方法来实现定时器 - (void)addTimer { NSTimer scheduledTimerWithTimeInterval:2.0 repeats:YES block:^{ [self nextImage]; } } 该方法会自动为我们实例化的timer添加到当前线程的RunLoop中,并且默认模式是  NSDefaultRunLoopMode .但当前线程是主线程时, 当scrollView或其子类进行滚动的时…
用到UIScrollview的翻页效果时,有时需要显示一部分左右的内容,但是UIScrollView的PagingEnabled只能翻过整页,下面几个简单的设置即可实现 技术点: 1. 创建一个继承UIView的视图,并设置clipsToBounds= YES 2. 添加一个UIscrollView控件,将其宽度设置为自定义翻页的宽度 3. 设置UIScrollview 的clipsToBounds= NO 4. 确保本View的宽度大于UIScrollView的宽度用于显示预览内容 5. 重写…
UIScrollView可以实现在一个界面看到所有内容,同时也不需要担心所显示的内容超出屏幕的大小,当超出之后可以翻阅至下一页浏览. #pragma mark - UIScrollViewDelegate - (void)scrollViewDidScroll:(UIScrollView *)scrollView {       //在UIScrollView滑动的时候调用此代理函数 CGRect visibleBounds = scrollView.bounds;    //得到当前UIScr…
如何在ScrollView滑动的瞬间禁用拖拽手势 效果: 在UIScrollView滑动的瞬间禁用pan手势,可以防止用户按着屏幕不放后导致出现的一些莫须有的bug. // // ViewController.m // TableViewDemo // // Created by XianMingYou on 15/2/23. // Copyright (c) 2015年 XianMingYou. All rights reserved. // #import "ViewController.h…
我是Mike Ash的Let’s Build…系列文章的忠实粉丝,在这一系列文章中他从头设计Cocoa的控件来解释他们的工作原理.在这里我要做一点类似的事情,用几行代码来实现我自己的滚动试图.不过首先,让我们先来了解一下UIKit中的坐标系是怎么工作的.如果你只对滚动试图的代码实现感兴趣可以放心跳过下一小节.UIKit坐标系每一个View都定义了他自己的坐标系统.如下图所示,x轴指向右方,y轴指向下方: 注意这个逻辑坐标系并不关注包含在其中View的宽度和高度.整个坐标系没有边界向四周无限延伸.…
通过UIScrollView展示图片的时候,如果直接向UIScrollView添加UIImageView,在图片数量比较少的时候是没有问题的,但是当我们添加图片数量非常多的时候,会占用大量的内存,我们就来讲一下怎样通过重新构建一个可以实现视图重用的的UIScrollView来避免这样的事情发生! 第一步:创建一个自定义的UIScrollView 1.添加两个protocol来通过代理获取相应的数据,通过一个枚举类型判断边距类型 2.实现如下代码: 3.实现的时候我们可以通过layoutsubvi…
1.NSCalendar用法 -(NSString *) getWeek:(NSDate *)d { NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; unsigned units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit; NSDateC…
基于定时器的动画 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点.一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只是看起来像是做了运动. 我们之前提到过iOS按照每秒60次刷新屏幕,然后CAAnimation计算出需要展示的新的帧,然后在每次屏幕更新的时候同步绘制上去,CAAnimation最机智的地方在于每次刷新需要展示的时候去计算插值和缓冲. 之前,我们解决了如何自定义缓冲函数,然后根据需要展示的帧的数组来…
原文:http://www.cocoachina.com/ios/20150106/10839.html 基于定时器的动画和性能调优 基于定时器的动画 我可以指导你,但是你必须按照我说的做. -- 骇客帝国 在第10章“缓冲”中,我们研究了CAMediaTimingFunction,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟 物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控制一帧一帧展示的基…
本篇文章只是记录了一个自定义UIPageControl 的制作,其实很简单的   源码在底部会奉上链接,还望多多交流,多多支持. 首先效果图如下: 首先先做一个UISCrollView // 建议这样做,可以避免内存的泄露 UIScrollView *scrol = [[UIScrollViewalloc]init]; self.scrol = scrol; [scrol release]; MyPageControl *page = [[MyPageControlalloc]init]; se…
工作了将近两个月,共接手两个项目,在项目中用的最多的就是UITableView了,但是也是问题出现的最多的地方,由于一开始不熟练,导致很多问题花了很长时间才解决.所以利用这两天空闲时间,好好梳理一下这个控件,希望能够方便以后的开发工作. 我的介绍是从我创建UITableView的顺序说起. 一.概述: UITableView继承与UIScrollView.这两个控件的异同点如下: 相同点:UITableView实现了UIScrollView协议,且继承于UIScrollView,两个组件都可以滑…
1.NSCalendar用法 -(NSString *) getWeek:(NSDate *)d { NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; unsigned units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit; NSDateC…
学习参考了:http://www.jianshu.com/p/c35a81c3b9ebhttps://zsisme.gitbooks.io/ios-/content/chapter11/frame-timing.html 自己总结一下,方便以后使用 NSTimer iOS按照每秒60次刷新屏幕,然后CAAnimation计算出需要展示的新的帧,然后在每次屏幕更新的时候同步绘制上去,CAAnimation最机智的地方在于每次刷新需要展示的时候去计算插值和缓冲.    NSTimer是如何工作的.…
定时器的动画 我可以指导你,但是你必须按照我说的做. -- 骇客帝国 在第10章“缓冲”中,我们研究了CAMediaTimingFunction,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控制一帧一帧展示的基于定时器的动画. 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点.一般来说这种显示都无…
runloop 的 model作用是什么? 答案: model 主要是用来指定事件在运行循环中的优先级,分为: NSDefaultRunLoopMode(kCFRunLoopDefaultMode): 默认,空闲状态 UITrackingRunLoopMode:  UIScrollView 滑动时 继续runloop UIInitializationRunLoopMode: 启动runloop 时 NSRunLoopCommonModes (kCFRunLoopCommonModes) Mode…
UItableView或 UIcollectionView 都是继承UIScrollView 滑动的时候,判断是上滑还是下滑 使用 UIScrollView 的代理方法 func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) func scrollViewWillEn…
Masonry介绍 Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X.可以通过cocoapods将其导入. Masonry使用 Masonry属性及其说明 //左侧 //@property (nonatomic, strong, readonly) MASViewAttribute *mas_left; //上侧 //@property (nonatomic, strong, read…
1.NSCalendar用法 -(NSString *) getWeek:(NSDate *)d { NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; unsigned units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit; NSDateC…
layoutSubviews:  简单的说就是你如果想调用此方法.不要直接调用,需要调用setNeedsLayout方法来刷新布局! drawRect:刷新布局 一:layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews.2.addSubview会触发layoutSubviews.3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化.4.滚动一个UIScrollView会触发layoutSu…
11. 基于定时器的动画 基于定时器的动画 我可以指导你,但是你必须按照我说的做. -- 骇客帝国 在第10章“缓冲”中,我们研究了CAMediaTimingFunction,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控制一帧一帧展示的基于定时器的动画. 11.1 定时帧 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示…
一个UICollectionView有好多个cell,滑动一下,谁也不知道会停留在哪个cell,滑的快一点,就会多滑一段距离,反之则会滑的比较近,这正是UIScrollview用户体验好的地方. 如果想要UICollectionView停留到某个cell的位置,可以用 - (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPos…
侧滑返回是iOS系统的一个很贴心的功能,特别是在大屏手机上,单手操作的时候去按左上角的返回键特别不方便.当我在使用一个APP的时候,如果控制器不能侧滑返回,我会觉得这个APP十分不友好...这款产品在我心中的印象分也会有所降低... 侧滑返回本身是系统自带的效果,无须开发者处理的.但是,一旦给控制器加了leftBarButtonItem,系统侧滑手势居然失效了(苹果你这样真的好吗...),要重新支持侧滑返回,可以做以下处理: 一.让应用支持侧滑返回 1. 导入FDFullscreenPopGes…
UIScrollView制作滑动列表,可横向,竖直展示一些列表在固定可视范围内 UIScrollVIew只是一个可滑动的UI组件 如果需要制作复杂的可视区域UI需要配合使用UIPanel与UIGrid 这样更方便UI的展示 a.创建一个2D UI Root,在NGUI菜单上创建一个Scroll View b.在ScrollView上默认的为我们添加了一个UIPanel与UIScrollView Alpha:面板的透明度 Depth:面板在所有UI上的层次等级 Clipping:面板剪切,分为No…
1.实现UIScrollViewDelegate 开始滑动: - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView 滑动过程: - (void)scrollViewDidScroll:(UIScrollView *)scrollView 滑动结束: - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 注意:无伦用户如何滑动scrollView…
1.UIScrollView 减速 可能通过decelerationRate的属性来设置,它的值域是(0.0,1.0),当decelerationRate设置为0.1时,当手指touch up时就会很慢的停下来. 2.UIScrollView 如何判断停止滑动 这里停止滑动的意思要明确一下,有两种, 第一指手指停止滑动,因为手指停止滑动ScrollView. 当手指停止滑动时,iOS会调UIScrollView的delegate - (void)scrollViewDidEndDragging:…
在使用某宝或某东购物的时候,我们会在其首页看到一个可以滑动的版块,这个版块的实现就是一个UIScrollView.在我们使用UIScrollView的时候会发现,滑动到最后的时候,UIScrollView不能像上面说的版块那样又回到最初的地方.基于此,做了一个小Demo来实现UIScrollView的无限循环滑动. 小小思路:UIScrollView具有分页属性,要实现UIScrollView的无限循环滑动,我们不能生硬暴力的给一个数组按规律的,无限的添加图片,这样手机内存还不爆炸 0.0 ,…