iOS开发技巧(1)

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

exclusiveTouch

exclusiveTouch是UIView的一个属性。Exclusive是“独家”的意思,所以这个方法的作用就是把某个UIView的触碰事件设置为独家事件,即如果多个设置了exclusivetouch的UIVIew被同时点击,则只对一个事件作出反应。这个方法可以用于解决多个按钮同时点击造成的多事件响应问题。

attemptRotationToDeviceOrientation

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

viewWillLayoutSubviews

这是UIViewController的一个方法,和viewDidLoad、viewWillAppear类似。这个方法在UIView调用layoutSubviews之后调用,作为UIViewController的子类,一般可以实现这个方法以重新调整界面。

之所以用这个方法,是因为在Storyboard中,我们一般都会以一定的大小显示控件,当视图被真正加载时,即在viewDidLoad中,我们的控件显示的尺寸都是我们在Storyboard中对应的尺寸,即使实际屏幕与Storyboard中的屏幕尺寸不一致,还是会使用Storyboard中的大小。这样造成的问题是控件未能及时初始化,特别是UICollectionView等需要根据视图大小决定子视图布局的控件,影响很大。所以在viewWillLayoutSubviews中对我们的控件进行重新调整才是正确的方法。

等比例排放视图

如果需要让几个视图横向排列且等宽等距,可以通过设置它们之间的间距约束、它们的宽度相等约束来实现。

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

Constrain to margins

Storyboard中对视图的约束一般会默认选上Constrain to margins,这意味着它与父视图会有一定的偏移值。这个选项会造成我们设计与开发之间的偏差,如果需要高度自定义自己的视图,则需要把这个约束去掉。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。