iOS initWithFrame、initWithCoder、awakeFromNib的区别解析
UIView的setNeedsLayout,layoutIfNeeded等方法介绍
当你重新设置了layout属性,需要调用layoutIfNeeded方法 setNeedLayout和layoutIfNeed,还有一个关联的方法是layoutSubviews,在我们没有任何干预的情况下,一个view的fram或bounds发生变化时,系统会设置一个flag给这个view,当下一个渲染时机到来时系统会重新按新的布局来渲染视图。setNeedLayout就是我们主动为这个视图设置一个flag,告诉系统这个视图再下一个时机到来时要重新渲染,而layoutIfNeed则是告诉系统,如果设置了flag那么不用等待时机到来了,直接渲染吧。而layoutSubviews这个方法是系统调用的,我们不需要主动调用,我们只需要调用layoutIfNeed就可以了,让系统判断是否在当前时机下立即渲染。
第三方控件
网易首页
https://github.com/jasnig/ZJScrollPageView 右侧带有+ 可选择栏目的分栏
https://github.com/wangmchn/WMPageController 带有微博、简书的分栏上去静止的功能。
在按钮上方显示个数:PPBadgeView https://github.com/jkpang/PPBadgeView
网友评论