iOS开发技巧(1)

这个系列的文章只是简单地把开发过程当中的一些技巧总结起来,方便之后查阅。布局

exclusiveTouch

exclusiveTouch是UIView的一个属性。Exclusive是“独家”的意思,因此这个方法的做用就是把某个UIView的触碰事件设置为独家事件,即若是多个设置了exclusivetouch的UIVIew被同时点击,则只对一个事件做出反应。这个方法能够用于解决多个按钮同时点击形成的多事件响应问题。设计

attemptRotationToDeviceOrientation

这是UIViewController的一个静态方法,用于唤起屏幕旋转。当UIViewController的方向与屏幕的方向不一致时,使用这个方法可让UIViewController旋转屏幕。使用这个方法通常用于应付坑爹的产品需求,在某个界面显示是竖屏、而进入另外一个界面则是横屏的状况。事件

viewWillLayoutSubviews

这是UIViewController的一个方法,和viewDidLoad、viewWillAppear相似。这个方法在UIView调用layoutSubviews以后调用,做为UIViewController的子类,通常能够实现这个方法以从新调整界面。ip

之因此用这个方法,是由于在Storyboard中,咱们通常都会以必定的大小显示控件,当视图被真正加载时,即在viewDidLoad中,咱们的控件显示的尺寸都是咱们在Storyboard中对应的尺寸,即便实际屏幕与Storyboard中的屏幕尺寸不一致,仍是会使用Storyboard中的大小。这样形成的问题是控件未能及时初始化,特别是UICollectionView等须要根据视图大小决定子视图布局的控件,影响很大。因此在viewWillLayoutSubviews中对咱们的控件进行从新调整才是正确的方法。开发

等比例排放视图

若是须要让几个视图横向排列且等宽等距,能够经过设置它们之间的间距约束、它们的宽度相等约束来实现。产品

若是须要让几个已知宽度的视图等距排列,有两种方法。一种是在上面方法的基础上在每一个视图内部中心放置新的视图。另外一种方法则是设置每一个视图对齐中心,并修改乘数(Multiplier)让视图偏移,并经过选中控件、按住option键、鼠标移到另外一个控件上查看两个视图之间的距离这种方法检验乘数的正确性。io

Constrain to margins

Storyboard中对视图的约束通常会默认选上Constrain to margins,这意味着它与父视图会有必定的偏移值。这个选项会形成咱们设计与开发之间的误差,若是须要高度自定义本身的视图,则须要把这个约束去掉。基础

相关文章
相关标签/搜索