![](/img/trans.png)
[英]How to enable and disable certain UISegmentedControl segments based on selection in preceding segments
[英]How to stop UISegmentedControl segments animation
有什么辦法可以停止方法insertSegment(withTitle:at:animated)
嗎? 即使我將animated:false
設置為animated:false
片段,也請看以下內容:
請忽略紅球。
我用來創建組件的代碼是:
let segmentedControl = UISegmentedControl()
segmentedControl.sendActions(for: UIControlEvents.valueChanged)
segmentedControl.tintColor = UIColor.white
segmentedControl.selectedSegmentIndex = 0
view.addSubview(segmentedControl)
約束設置可以,幀寬度(兩側均為100%-16像素)始終相同。 問題與細分有關,而不是父視圖。
要添加細分(在設置檢查后會發生這種情況):
segmentedControl.insertSegment(withTitle: "Bolinha 1", at: 0, animated: false)
設置框架不起作用,因為問題與內部視圖有關。
我試圖使用setAnimationsEnabled(false)
刪除它,但是不起作用。
編輯1:使用segmentedControl.setWidth(segmentedControl.frame.width/3, forSegmentAt: 0)
不起作用。
編輯2:從UISegmentedControl(items: ["", "", ""])
開始視圖是否替換了整個組件,這是一個非常沉重的解決此問題的方法...
該項目使用Swift 3.1。
謝謝。
我發現動畫可以修改內部組件的行為。
刪除此動畫可解決問題:
view.setNeedsUpdateConstraints()
view.updateConstraintsIfNeeded()
UIView.animate(
withDuration: 0.5,
delay: 0.5,
usingSpringWithDamping: 1.0,
initialSpringVelocity: 2,
animations: { [weak self] in
self?.view.layoutIfNeeded()
}, completion: nil)
正確的解決方案是在構建約束時避免任何動畫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.