我正在尝试用ios图表制作一个barchart,当手机的方向改变时,barchartview无法正确地重新绘制以适应屏幕时,我遇到了一个问题-在横向模式下,图表似乎被压缩到视图的前50个像素中。
我在代码和界面构建器中都尝试过向barchart视图添加约束,但我一直遇到同样的问题。
我找到了一种方法让它工作-当方向改变如下时移除并重置barchartview

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    print ("orientation change")
    barChartView!.removeFromSuperview()
    barChartView  =  BarChartView(frame: CGRect(x: 0, y: 60, width: self.view.frame.size.width, height: self.view.frame.size.height - 60))
    self.view.addSubview(barChartView!)
    setChart()
}

但是条形码视图不应该自动响应IB中设置的约束吗?或者我还有别的事要做吗?

最佳答案

是的,不会自动刷新。
也许你该试试

chart.data.notifyDataChanged()
chart.notifyDataSetChanged()
chart.setNeedsDisplay()

10-08 00:00