[英]How can I set the default state of a UISegmentedControl?
有沒有辦法在界面生成器的 UISegmentedControl 中設置起始選定段,或者我必須在代碼中設置? 如果它在代碼中,viewDidLoad 是設置它的最佳位置嗎?
從代碼中,你可以只做self.segmentedControl.selectedSegmentIndex = someDefaultIndex
。
您是否應該在viewDidLoad:
設置它完全取決於您的應用程序的結構。 例如,如果您的應用程序是第一次啟動並加載視圖,並且需要將控件設置為它在應用程序上一次運行期間擁有的任何值,那么在那里進行操作肯定是有意義的。
在界面生成器中,當您在 UI 上選擇 UISegmentedControl 對象時,然后在屬性窗格中,在段控件中有段下拉菜單,選擇要選擇的段(0,1 等)並勾選其下方的“已選擇”選項。
如果您不使用故事板並且想像我一樣在一些設置/網絡之后設置默認索引,那么如果用戶沒有,這個小片段會選擇一些東西。 我把它放在我UISegmentedControl
子類中,但你可以把它放在任何地方。 (斯威夫特 3 )
Decl: var UISegmentedControlNoSegment: Int { get }
Desc: A segment index value indicating that there is no selected segment. See selectedSegmentIndex for further information.
精簡版:
if selectedSegmentIndex == UISegmentedControlNoSegment {
selectedSegmentIndex = initialIndex
}
更長的版本
func reloadData() {
guard let numberOfItems = dataSource?.numberOfItems() else {
return
}
removeAllSegments()
for index in 0...numberOfItems {
insertSegment(with: $image, at: index, animated: false)
}
if selectedSegmentIndex == UISegmentedControlNoSegment {
selectedSegmentIndex = initialIndex
}
}
單擊分段控件后,轉到創建分段的位置並選擇您想要的默認分段。 然后在它下面會有一個帶有“已選擇”的框。 選擇它,它將是默認值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.