遇到复杂的界面,第一个反应就是封装,第一可以更好的复用,第二需求改变真的伤不起,所以为了周期,能够更加有效率的完成任务,那就试分模块封装。
恰好碰到了这个需求,写出来分享下,点击注册账号,会动画跳到注册view,换句话就是只是复用这个view。控制器不切换,业务逻辑很是相似,切换视图,一般的方式是在view.h文件中记录一个BOOL类型的变量,记录是否登陆,然后在控制器创建的该视图对象中改变这个BOOL属性状态为NO,在view.m文件中setBOOL中做判断,如果为NO加载注册,如果为YES加载登陆视图,但是因为业务逻辑太像了,所以没必要这么多代码,在xib中再来一个相似的view做加载即可
做约束要注意呀,血的教训呀,约束一定做水平,别做左边和右边的约束,不知道我哪里来的坏习惯,控件不认左右约束的。
当你发现约束一直和显示的不一样的时候,要么把约束删除重新约束,要么还有一个靠谱的方法,就是在控制器的viewDidLayOutSubviews方法里去重新对其进行设置frame也就是屏幕适配。这样就会规避约束问题,但是创建控件不要在这里写,因为创建控件只需要创建一次就可以了。