scrollview设定滚动方向(菜鸟填坑)
来源:互联网 发布:ios最简单的链式编程 编辑:程序博客网 时间:2024/05/20 09:11
禁止UIScrollView垂直方向滚动,只允许水平方向滚动
scrollview.contentSize = CGSizeMake(你要的长度, 0);
禁止UIScrollView水平方向滚动,只允许垂直方向滚动
scrollview.contentSize = CGSizeMake(0, 你要的宽度);
但是即使设置了contentSize的大小,还是有个坑要注意一下:因为contenInset值被意外修改过的时候,scrollview仍然可以滑动。
再配上UINavigationController每次push后再pop回来的情景,UIScrollView的contenInset都会重写改变重置,下面是KVO监测到的数据:
这种问题对于经验不久的新手来说很难定位到问题的所在。
下面是我在此复合情景中禁止scrollView上下滑动处理方法:
//设置contentSize scrollView.contentSize = CGSizeMake(ksScreenWidth, 0); [scrollView addObserver:self forKeyPath:@"contentInset" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
//重写observeValueForKeyPath方法-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ if ([keyPath isEqual:@"contentInset"]) { NSlog(@"contentSize被改变了"); NSlog(@"\n contentInset新:%@\n contentInset老:%@", [change objectForKey:@"new"],[change objectForKey:@"old"]); if (object == scrollView) { UIEdgeInsets insets =[[change objectForKey:@"new"] UIEdgeInsetsValue] ; if (insets.bottom>0||insets.top>0) { scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); } } }}
- (void)dealloc{ /** * 移除监听 */ [scrollView removeObserver:self forKeyPath:@"contentInset"];}
0 0
- scrollview设定滚动方向(菜鸟填坑)
- android 图片垂直方向( ScrollView) ,水平方向HorizontalScrollView 滚动
- 菜鸟填坑
- 滚动条(ScrollView)
- 任意方向滚动的ScrollView,附带弹性特效
- 关于Scrollview怎么只让一个方向滚动的问题
- iOS开发 - ScrollView滚动时怎么判断滚动停止及滚动的方向
- android 滚动视图(ScrollView)
- ios滚动视图(scrollView)
- ios滚动视图(scrollView)
- 滚动方向
- scrollview滚动
- 【Android填坑系列】ScrollView嵌套GridView的处理
- QListWidget 布局方向设定
- 图片(水平方向)轮番滚动
- 监听ScrollView滑动方向
- ScrollView 获取滑动方向
- Android组件 滚动条(ScrollView)
- idea bearcat 文件模板
- java swing 窗口界面关闭事件响应
- SEO
- 项目需求将上传的文件统一FTP传送到一个服务器
- Vector & ArrayList ,ArrayList & LinkedList,Hashtable & HashMap
- scrollview设定滚动方向(菜鸟填坑)
- 舍多就少是做人的智慧
- actionbar图标
- WCF REST简单应用 编程初始化 help页面实现
- 浅谈Java中的hashcode方法
- 将文件夹下及子文件夹下的class文件打包jar
- Linux(CentOS)下安装配置和使用PostgreSQL数据库
- 关于applicationContext.xml cannot be opened because it does not exist的解决
- iOS web app