我必须在UISegmentedControl上以编程方式选择viewWillAppear()索引。

switch shirtSize {
    case ProfilingPreferredShirtSize.xs.rawValue:
        shirtSizeSegmentedControl.selectedSegmentIndex = 0
    case ProfilingPreferredShirtSize.s.rawValue:
        shirtSizeSegmentedControl.selectedSegmentIndex = 1
    case ProfilingPreferredShirtSize.m.rawValue:
        shirtSizeSegmentedControl.selectedSegmentIndex = 2
    case ProfilingPreferredShirtSize.l.rawValue:
        shirtSizeSegmentedControl.selectedSegmentIndex = 3
    case ProfilingPreferredShirtSize.xl.rawValue:
        shirtSizeSegmentedControl.selectedSegmentIndex = 4
    default:
        break
}

当选择最后一个索引(4)时,对应的段不会以图形方式选择。当我手动点击最后一段时,它会被选中,但不会调用valueChange回调。这意味着selectedSegmentIndex已经设置好,只是一个图形错误。我能做什么?对于所有其他值(0-3),它都是完美的。

最佳答案

请尝试刷新布局:

setNeedsLayout();

08-16 14:33