#症状
Storyboardのファイルを編集中、動作が激重になりやってられない
- storyboardを開いた状態で操作が受け付けられないほど重い。数分放置で操作は可能になったりする
- いくつかの画面に対して、「設定したconstraintと実際の表示位置がずれていますよ」的なwarningが出る。
何を契機にそうなったのがはっきりせず。
後者が先に出ていて、ここ数日の間に前者の症状が出てきたように思う。
コミットを1つずつ戻していくなどすれば原因にたどり着くのかもしれませんが、そこまでの時間がとれておらず、そんな中回避策と思えるものが見つかったのでメモしておく。
試したこと
1.制約関連の警告を消す
毎回ではないものの、Storyboardを開き直すと制約関連の警告が特定の画面で出ていることがあり。
特に触った覚えのない画面で、ラベルやらTableViewの位置が数ピクセルずれており、そこに対して「制約の指定からズレてますよ」的な警告が出る。
Update Frames
の実行で警告は消える内容。
これらを解消してやっても改善する気配はなし。
2.「IB_DESIGNABLE
外し」
(参考) Xcode6.3でStoryboardを開いているときにほかのファイルを開こうとするとXcodeがフリーズする - Qiita
UIButton, Labelなど自前のカスタムクラスがいくつかあり、それらにIB_DESIGNABLE
をつけていたので外して様子を見たがほぼ効果なしだった。
3.その後適当にいじってて気づいたこと
Xcode/Storyboardのウィンドウを外部ディスプレイ→Mac本体画面へ移動すると普通の操作感に戻る。しかも勝手に出ていたwarningも移動を契機に消える。
ウィンドウを再び外部ディスプレイへ戻してみるとまた重くなりwarningがまた出てる。
結論(回避策)
Storyboardの参照・編集はMac本体側ディスプレイ上でやるのが無難。
MiniDisplayポート経由のVGA出力が悪い気がする。
HDMI出力とか、MiniDisplayポート→DVIとかは試せてないので、差があるのか気になる所。
参考:発生時の環境1
Xcode 6.3.2
OS X 10.10.3(14D136)
MacBook Pro (Retina, 13-inch、Early 2015)
2.7 GHz Intel Core i5 / 8 GB 1867 MHz DDR3
(外付けモニタ)
Dell, E170S
→MiniDisplayport-VGAケーブルで接続
参考:発生時の環境2
Xcode 6.3.2
OS X 10.10.3(14D136)
MacBook Pro (Retina, Mid 2012)
2.6 GHz Intel Core i7 / 16 GB 1600 MHz DDR3
(外付けモニタ)
hp L1925
ここまで書いてみると、
どちらも問題の出るモニタへは「MiniDisplay→VGA変換しての出力」が共通。
やはりデジタル→アナログの変換がダメな気がしてきました。