automaticallyAdjustsScrollViewInsets这个历史是个什么玩意儿怎么废掉它

iOS开发 automaticallyAdjustsScrollViewInsets的使用
我的图书馆
iOS开发 automaticallyAdjustsScrollViewInsets的使用
在iOS的开发当中,应用比较广泛的几个UIKit控件就有UICollectionView,UITableView和UIScrollView。其中UICollectionView和UITableView都是继续UIScrollView,因而节省很多开发时间去自定义来实现那些或基本或炫酷的功能效果。最近用UICollectionView做了一个翻书的效果,结果发现当页面加载的时候,UICollectionView中的cell的位置在点击触发的时候会向上移动。打印了所有可能的Y的位置,竟然发现是没有变化。各种寻找方法,也从底层去查看是否是属性问题,最终解决的方法是 automaticallyAdjustsScrollViewInsets。(也是对自己无语了)demo:&& &&&&对于automaticallyAdjustsScrollViewInsets 的官方描述是:automaticallyAdjustsScrollViewInsets
Specifies whether or not the view controller should automatically adjust its scroll view insets.
@property(nonatomic, assign) BOOL automaticallyAdjustsScrollViewInsets
Discussion
Default value is
YES, which allows the view controller to adjust its scroll view
insets in response to the screen areas consumed by the status bar,
navigation bar, and toolbar or tab bar. Set toNO if you want to manage scroll view inset adjustments
yourself, such as when there is more than one scroll view in the view hierarchy.
Availability
Available in iOS 7.0 and later.//iOS7.0之后的属性!!!
Declared In
UIViewController.h简单点说就是automaticallyAdjustsScrollViewInsets根据按所在界面的status
bar,navigationbar,与tabbar的高度,自动调整scrollview的
inset,设置为no,不让viewController调整。self.automaticallyAdjustsScrollViewInsets = NO;自己代码的问题在于自定义了一个 navigationbar ,因而系统自己判断并适配。设置了automaticallyAdjustsScrollViewInsets 才实现了相应效果。===== 分割线 =====备注一下UIScrollView的一些属性常见属性CGSize contentSize :设置UIScrollView的滚动范围CGPoint contentOffset :UIScrollView当前滚动的位置UIEdgeInsets contentInset :这个属性可以在四周增加滚动范围其他属性BOOL bounces 是否有弹簧效果BOOL scrollEnabled 是否能滚动BOOL showsHorizontalScrollIndicator 是否显示水平方向的滚动条BOOL showsVerticalScrollIndicator & & 是否显示垂直方向的滚动条UIScrollViewIndicatorStyle indicatorStyle &设定滚动条的样式 BOOL dragging 是否正在被拖拽 BOOL tracking &当touch后还没有拖动的时候值是YES,否则NOBOOL decelerating 是否正在减速 BOOL zooming 是否正在缩放 手势缩放设置UIScrollView的id&UISCrollViewDelegate& delegate代理对象设置minimumZoomScale :缩小的最小比例设置maximumZoomScale :放大的最大比例让代理对象实现下面的方法,返回需要缩放的视图控件- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView跟缩放相关的常用方法还有正在缩放的时候调用-(void)scrollViewDidZoom:(UIScrollView *)scrollView缩放完毕的时候调用-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{}分页效果设置pagingEnabled=YES即可,UIScrollView会被分割成多个独立页面,用户的滚动体验则变成了页面翻转一般会配合UIPageControl增强分页效果,UIPageControl常用属性:NSInteger numberOfPages : 总页数NSInteger currentPage : 当前的页码BOOL hidesForSinglePage : 当只有一页的时候,是否要隐藏视图监听UIPageControl的页面改变:// 添加监听器[pageControl addTarget:self action:@selector(pageChange:)&forControlEvents:UIControlEventValueChanged];// 监听方法- (void)pageChange:(UIPageControl *)pageControl {}
TA的最新馆藏
喜欢该文的人也喜欢Pages: 1/2
主题 : automaticallyAdjustsScrollViewInsets这个玩意怎么废掉它啊
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
来源于&&分类
automaticallyAdjustsScrollViewInsets这个玩意怎么废掉它啊&&&
7.0以后出现的automaticallyAdjustsScrollViewInsets这个属性怎么样直接废掉他啊如果是在每个新建的控制器都写一句automaticallyAdjustsScrollViewInsets = NO,好麻烦。。。能不能在某一个地方设置一下,然后整个项目都不用管他了。比如在plist里面设置一下。。。(猜的,有知道的吗,请指教下)
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
storyboard也可以弄走它啊
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
回 楼主(只是没如果) 的帖子
多大仇&& 我只想到继承,拦截 2个方法
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
回 2楼(雪夜风暴) 的帖子
可以仔细说说嘛。新手不懂,继承都不会用。。。拦截完全没概念
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
回 3楼(只是没如果) 的帖子
继承就是你创建个UIViewController 名为 BaseViewController&&在里面写self.automaticallyAdjustsScrollViewInsets = false之后你要写这行代码的Controller 创建的时候 在subClass of 那里选 BaseViewController 就行了它会执行它父类的方法的然而继承不算是一种最好的解决方法
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
回 4楼(雪夜风暴) 的帖子
自动走,不用写方法调用吗?其实最近想学继承,这样以后项目中可以省去好多代码哈。请教下下面两个问题:1.我最近看了几篇关于继承的帖子,都是很简单的写个peplo类,还是没什么具体概念。感觉写出来和系统的控件很像,就像UIControl,下面就有好多控件,比如UIButton之类的,可是我还是不明白UIControl这种父类里面,我应该写一些什么。有没有比较好的文章给我推荐下啊?2.针对automaticallyAdjustsScrollViewInsets这个问题还有其它解决方法吗?
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
回 5楼(只是没如果) 的帖子
1,文章我也不知道啊,只能你自己去找了2,有啊,不过你继承都不知道,其它难点的方法就不说了&& 一步步来 别没学会走就想着飞&&
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
回 6楼(雪夜风暴) 的帖子
说一说呗。有没有那种更改plist的方法啊。
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
回 7楼(只是没如果) 的帖子
有啊,你每次创建Controller的时候都会有默认的代码给你写上去的&&&&你在Xcode里面找到这些文件里面加一行 self.automaticallyAdjustsScrollViewInsets = false 就不用每次都打这行代码了&&
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
回 8楼(雪夜风暴) 的帖子
好奇葩的方式。。。。而且我创建的时候写和创建好了在控制器里写有什么区别。。。还不是要写好多
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版Pages: 1/2
主题 : automaticallyAdjustsScrollViewInsets这个玩意怎么废掉它啊
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
来源于&&分类
automaticallyAdjustsScrollViewInsets这个玩意怎么废掉它啊&&&
7.0以后出现的automaticallyAdjustsScrollViewInsets这个属性怎么样直接废掉他啊如果是在每个新建的控制器都写一句automaticallyAdjustsScrollViewInsets = NO,好麻烦。。。能不能在某一个地方设置一下,然后整个项目都不用管他了。比如在plist里面设置一下。。。(猜的,有知道的吗,请指教下)
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
storyboard也可以弄走它啊
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
回 楼主(只是没如果) 的帖子
多大仇&& 我只想到继承,拦截 2个方法
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
回 2楼(雪夜风暴) 的帖子
可以仔细说说嘛。新手不懂,继承都不会用。。。拦截完全没概念
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
回 3楼(只是没如果) 的帖子
继承就是你创建个UIViewController 名为 BaseViewController&&在里面写self.automaticallyAdjustsScrollViewInsets = false之后你要写这行代码的Controller 创建的时候 在subClass of 那里选 BaseViewController 就行了它会执行它父类的方法的然而继承不算是一种最好的解决方法
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
回 4楼(雪夜风暴) 的帖子
自动走,不用写方法调用吗?其实最近想学继承,这样以后项目中可以省去好多代码哈。请教下下面两个问题:1.我最近看了几篇关于继承的帖子,都是很简单的写个peplo类,还是没什么具体概念。感觉写出来和系统的控件很像,就像UIControl,下面就有好多控件,比如UIButton之类的,可是我还是不明白UIControl这种父类里面,我应该写一些什么。有没有比较好的文章给我推荐下啊?2.针对automaticallyAdjustsScrollViewInsets这个问题还有其它解决方法吗?
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
回 5楼(只是没如果) 的帖子
1,文章我也不知道啊,只能你自己去找了2,有啊,不过你继承都不知道,其它难点的方法就不说了&& 一步步来 别没学会走就想着飞&&
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
回 6楼(雪夜风暴) 的帖子
说一说呗。有没有那种更改plist的方法啊。
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
回 7楼(只是没如果) 的帖子
有啊,你每次创建Controller的时候都会有默认的代码给你写上去的&&&&你在Xcode里面找到这些文件里面加一行 self.automaticallyAdjustsScrollViewInsets = false 就不用每次都打这行代码了&&
级别: 骑士
UID: 562981
可可豆: 982 CB
威望: 976 点
在线时间: 394(时)
发自: Web Page
回 8楼(雪夜风暴) 的帖子
好奇葩的方式。。。。而且我创建的时候写和创建好了在控制器里写有什么区别。。。还不是要写好多
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版}

我要回帖

更多关于 玩意儿 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信