刚开始学习iOS。我以编程方式创建了一个UISegmentedControl并用两个项初始化它。我似乎不明白为什么所选索引总是显示0。
这是我的代码:
let items = ["Watchlist", "Favorites"]
var segmentedControl: UISegmentedControl {
let sc = UISegmentedControl(items: items)
sc.selectedSegmentIndex = 0
sc.addTarget(self, action: #selector(handleSegmentChange), for: .valueChanged)
return sc
}
// Action for segment change
@objc fileprivate func handleSegmentChange() {
print(segmentedControl.selectedSegmentIndex)
}
分段控件定义为computed property,它创建一个新的UISegmentedControl
实例,每次访问时selectedSegmentIndex
值设置为0。请尝试使用属性初始化闭包:
let segmentedControl: UISegmentedControl = {
let sc = UISegmentedControl(items: items)
sc.selectedSegmentIndex = 0
sc.addTarget(self, action: #selector(handleSegmentChange), for: .valueChanged)
return sc
}()