質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1804閲覧

failed to render and update auto layout status for

oimo999

総合スコア3

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/05/08 12:16

編集2020/05/09 05:17

前提・実現したいこと

現在初めてオリジナルアプリを作成中です。
ビルドエラー:failed to render and update auto layout status for〜が突然出てから修復できません。
cocoapodsでFSCalenderを使用しています。
derived dataの削除、ビルドフォルダーのクリーン等行いましたがまだ直らず、エラーの原因を教えて頂きたいです。

発生している問題・エラーメッセージ

failed to render and update auto layout status for MainViewController(BYZ-38-t0r)

該当のソースコード

swift

1import UIKit 2import FSCalendar 3 4 5class MainViewController: UIViewController,FSCalendarDelegate,FSCalendarDataSource,FSCalendarDelegateAppearance { 6 7 @IBOutlet weak var calendar: FSCalendar! 8 @IBOutlet weak var dateLabel: UILabel! 9 @IBOutlet weak var piechartImageResultView: UIImageView! 10 11 var piechartImageResult: UIImage? = nil 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 self.calendar.dataSource = self 16 self.calendar.delegate = self 17 18 piechartImageResultView.image = piechartImageResult 19 } 20 21 22 23// カレンダーの日付がタップされた時の処理 24 func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition){ 25 26 let tmpDate = Calendar(identifier: .gregorian) 27 let year = tmpDate.component(.year, from: date) 28 let month = tmpDate.component(.month, from: date) 29 let day = tmpDate.component(.day, from: date) 30 dateLabel.text = ("(year).(month).(day)") 31 32 33 } 34 35 36 37 38 39 40 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 41 42 if segue.identifier == "toAddPiechart" { 43 44 let nextView = segue.destination as! AddPiechartViewController 45 46 nextView.dateResult = dateLabel.text! 47 } 48 } 49 50 51 52}

該当のソースコード

swift

1import UIKit 2 3class AddPiechartViewController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource { 4 5 6 @IBOutlet weak var pieChartView: UIView! 7 @IBOutlet weak var categoryPicker: UIPickerView! 8 @IBOutlet weak var startTimeLabel: UILabel! 9 @IBOutlet weak var endTimeLabel: UILabel! 10 @IBOutlet weak var dateLabel: UILabel! 11 @IBOutlet weak var piechartImageView: UIView! 12 13 14 var dateResult = "" 15 var pickerDataList = ["未選択", "睡眠","勉強","仕事","食事","遊び","運動"] 16 var pickerColor: [UIColor] = [.white, .blue, .red, .brown, .orange, .green, .gray] 17 var selectedPickerColor: UIColor = .white 18 var startRadian = 0.0 19 var endRadian = 0.0 20 var piechartImage: UIImage? 21 22 23 24 25 26 override func viewDidAppear(_ animated: Bool) { 27 super.viewDidAppear(animated) 28 if isMovingToParent { 29 let grayPath = UIBezierPath() 30 grayPath.addArc(withCenter: CGPoint(x: pieChartView.frame.width/2, y: pieChartView.frame.height/2), // 中心 31 radius: self.pieChartView.frame.height/5, // 半径r 32 startAngle: 0.0, // 開始角度 33 endAngle: .pi * 2, // 終了角度 34 clockwise: true) // 時計回り 35 36 let grayLayer = CAShapeLayer() 37 grayLayer.path = grayPath.cgPath 38 grayLayer.fillColor = UIColor.clear.cgColor // 真ん中の塗り色 39 grayLayer.strokeColor = UIColor.white.cgColor // 線の色 40 grayLayer.lineWidth = 40.0 // 線の幅 41 self.pieChartView.layer.addSublayer(grayLayer) 42 } 43 } 44 45 46 override func viewDidLoad() { 47 super.viewDidLoad() 48 49 50 categoryPicker.delegate = self 51 categoryPicker.dataSource = self 52 53 dateLabel.text = dateResult 54 55 56 } 57 58 59 // UIPickerViewのdelegate 60 func numberOfComponents(in pickerView: UIPickerView) -> Int { 61 return 1 62 } 63 64 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 65 return pickerDataList.count 66 } 67 68 func pickerView(_ pickerView: UIPickerView, 69 titleForRow row: Int, 70 forComponent component: Int) -> String? { 71 72 return pickerDataList[row] 73 } 74 75 // PickereViewの選択で色取得 76 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 77 selectedPickerColor = pickerColor[row] 78 } 79 80 81 @IBAction func startTimeSlider(_ sender: UISlider) { 82 let startSliderValue = Int(sender.value) 83 startRadian = Double(startSliderValue) 84 85 if startSliderValue % 2 == 0 { 86 startTimeLabel.text = "(startSliderValue / 2):00" 87 } else { 88 startTimeLabel.text = "(startSliderValue / 2):30" 89 } 90 } 91 92 @IBAction func endTimeSlider(_ sender: UISlider) { 93 let startSliderValue = Int(sender.value) 94 endRadian = Double(startSliderValue) 95 96 if startSliderValue % 2 == 0 { 97 endTimeLabel.text = "(startSliderValue / 2):00" 98 } else { 99 endTimeLabel.text = "(startSliderValue / 2):30" 100 } 101 } 102 103 @IBAction func addButton(_ sender: UIButton) { 104 105 let timeRadian = .pi * 2.0 / 48.0 106 107 let grayPath = UIBezierPath() 108 grayPath.addArc(withCenter: CGPoint(x: self.pieChartView.frame.width/2, y: self.pieChartView.frame.height/2), // 中心 109 radius: self.pieChartView.frame.height/5, // 半径r 110 startAngle: CGFloat(.pi * -0.5 + startRadian * timeRadian), // 開始角度 111 endAngle: CGFloat(.pi * -0.5 + endRadian * timeRadian), // 終了角度 112 clockwise: true) // 時計回り 113 114 let grayLayer = CAShapeLayer() 115 grayLayer.path = grayPath.cgPath 116 grayLayer.fillColor = UIColor.clear.cgColor // 真ん中の塗り色 117 grayLayer.strokeColor = selectedPickerColor.cgColor // 線の色 118 grayLayer.lineWidth = 40.0 // 線の幅 119 self.pieChartView.layer.addSublayer(grayLayer) 120 } 121 122 @IBAction func saveButton(_ sender: UIButton) { 123 piechartImage = piechartImageView.toImage() 124 125 let preNC = self.presentingViewController as! UINavigationController 126 let preVC = preNC.viewControllers[preNC.viewControllers.count - 2] as! MainViewController 127 preVC.piechartImageResult = self.piechartImage//ここで値渡し 128 129 self.navigationController?.popViewController(animated: true) 130 } 131} 132

該当のソースコード

swift

1import Foundation 2import UIKit 3 4/// UIView拡張(イメージ) 5public extension UIView { 6 7 // MARK: Public Methods 8 9 /// ビュー→イメージに変換する 10 /// 11 /// サブビューもイメージ化される 12 /// 13 /// - Returns: 対象ビューのイメージ 14 func toImage() -> UIImage { 15 UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, 0.0) 16 guard let context = UIGraphicsGetCurrentContext() else { 17 print("現在のコンテキストを取得できませんでした。") 18 return UIImage() 19 } 20 21 self.layer.render(in: context) 22 23 guard let image = UIGraphicsGetImageFromCurrentImageContext() else { 24 print("ビューをイメージに変換できませんでした。") 25 return UIImage() 26 } 27 28 UIGraphicsEndImageContext() 29 30 return image 31 } 32 33} 34

試したこと

derived dataの削除、ビルドフォルダーのクリーン、pod update

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TsukubaDepot

2020/05/08 13:44

参考になるかわかりませんが、上記のコードを実行したところ、こちらではエラーらしきものは発生しませんでした。 FSCalendar 2.8.1, cocoapods 1.9.1, Xcode 11.4.1 です。 下記のような情報もありますが、参考になりますでしょうか。 https://github.com/WenchaoD/FSCalendar/issues/914
oimo999

2020/05/09 01:10

返信ありがとうございます! xcode再起動でこちらのエラー消えました!・・・が新たにビルドエラー:'[<UIViewController 0x7fbd2b6070d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key calendar.' が出てきました・・・ storyboardとの紐付け等削除してからやり直してみましたが消えません。 原因わかりますでしょうか?
TsukubaDepot

2020/05/09 04:08

おそらく紐付けがうまくいってない部品があるんだと思います。 回答欄に図付きで説明を書きましたので、参考にしていただけますでしょうか。
guest

回答1

0

ベストアンサー

コメント欄から移動。

StoryBoardのリファレンスは見た目ではわからない場合があります。

下記の図のように、View Controllerをクリックした状態で右側ペインの「丸に→(右上)」をクリックし、Warningが出ているリファレンスを確認されてみてはいかがでしょうか。

イメージ説明

ちなみに、上記の状態だとbackButtonに関連づけられるはずのメソッドがない状態です(一番下)。

投稿2020/05/09 04:07

TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oimo999

2020/05/09 05:19

ありがとうございます! 確認してみましたがWarningが出ておらず、xcodeのバージョンアップデート後にエラー消えました・・・ 新たにCommand CodeSign failed with a nonzero exit codeのエラーが出ましたがもう少し奮闘してみます。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問