@ MatthiasBauch的評論幫我追查整體解決方案,具體如下:
注:我使用的是自動佈局,所以無論我用故事板,你就必須用替代它程序化等同。
1)首先,在故事板上拖出一個「分段控制」。
2)爲剛剛添加的控件創建一個Outlet。
3)另外,按Ctrl +點擊控制,並拖動到自己。然後點擊「寬度」添加寬度約束。 4)打開文檔大綱(編輯>「顯示文檔大綱」)
5)打開分段控件所在的「視圖」,然後打開分段控件的下拉菜單(我的名字是「First,第二個「)。然後打開「約束」。
6)按住Ctrl並點擊剛製作的「寬度」約束,然後拖到視圖控制器上爲它創建一個Outlet。這將允許您以編程方式調整寬度。
使用下面提到的文章,你可以作如下更新約束(使用動畫...獎金!)
轉到您要使用更新的寬度和執行方法如下:
let desiredWidthChange = 30.0
self.widthConstraint.constant =
self.mySegmentedControl.constant + desiredWidthChange
self.mySegmentedControl.setNeedsUpdateConstraints()
UIView.animateWithDuration(0.5, animations: {() -> Void in
self.mySegmentedControl.layoutIfNeeded() // Captures all of the frame changes.
println("Width updated successfully")
})
參考:
Are NSLayoutConstraints animatable?
調整其幀?或者如果您使用Autolayout調整定義寬度的約束? – 2014-12-05 22:29:05