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,這意味着它與父視圖會有必定的偏移值。這個選項會形成咱們設計與開發之間的誤差,若是須要高度自定義本身的視圖,則須要把這個約束去掉。基礎

相關文章
相關標籤/搜索