前提
ScrollViewの中にChartsを配置したのですがChartsを描画(addSubView)すると位置がずれます。
(オートレイアウトが無視される)
実現したいこと
ScrollViewの中にChartsを配置で配置したい。
(一番上から160のConstraint、真ん中に配置)
発生している問題・エラーメッセージ
該当のソースコード
Swift
1import UIKit 2import Charts 3 4class Test02ViewController: UIViewController { 5 6 @IBOutlet weak var pieChartsView: PieChartView! 7 @IBOutlet weak var scrollContent: UIView! // 追加 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 // 円グラフの中心に表示するタイトル 12 self.pieChartsView.centerText = "テストデータ" 13 14 // グラフに表示するデータのタイトルと値 15 let dataEntries = [ 16 PieChartDataEntry(value: 40, label: "A"), 17 PieChartDataEntry(value: 35, label: "B"), 18 PieChartDataEntry(value: 25, label: "C") 19 ] 20 21 let dataSet = PieChartDataSet(entries: dataEntries, label: "テストデータ") 22 23 // グラフの色 24 dataSet.colors = ChartColorTemplates.vordiplom() 25 // グラフのデータの値の色 26 dataSet.valueTextColor = UIColor.black 27 // グラフのデータのタイトルの色 28 dataSet.entryLabelColor = UIColor.black 29 30 self.pieChartsView.data = PieChartData(dataSet: dataSet) 31 32 // データを%表示にする 33 let formatter = NumberFormatter() 34 formatter.numberStyle = .percent 35 formatter.maximumFractionDigits = 2 36 formatter.multiplier = 1.0 37 self.pieChartsView.data?.setValueFormatter(DefaultValueFormatter(formatter: formatter)) 38 self.pieChartsView.usePercentValuesEnabled = true 39 40 view.addSubview(self.pieChartsView) 41 } 42 43 override func viewWillAppear(_ animated: Bool) { 44 super.viewWillAppear(animated) 45 self.pieChartsView.layoutIfNeeded() 46 } 47} 48
View hierarchy
View Constraint
試したこと
✅Chartsの描画はhttps://www.hfoasi8fje3.work/entry/2019/03/04/213142 を忠実に再現しています。
✅スクロールビューの配置は https://ios-docs.dev/uiscrollview/ を忠実に再現しています。
✅ https://qiita.com/touta/items/e72940f8fe8e9967e9f4 の内容をもとにviewWillAppear内でself.view.layoutIfNeeded()呼び出すも治らず。
✅https://u2k772.blog.fc2.com/blog-entry-172.html の内容をもとに全方向にConstrainsを指定するも治らず。
✅https://stackoverflow.com/questions/31428483/swift-ios-set-scrollview-constraint-below-navigation-bar-programmaticallyの内容をもとに"Under top bars"のチェックマークを外すも治らず。
✅https://mzgk.github.io/blog/2014/uiscrollview-checkpoint-2/ も内容をもとに Adjubst Scroll View Insetsのチェックを外すも治らず。
その他
Viewのデバッグの知見が全然ないのでどこを見れば良いのかわかっていない状態です。
お手柔らかにお願いします
補足情報(FW/ツールのバージョンなど)
Xcode13
回答1件
あなたの回答
tips
プレビュー