Swift
1 2//viewDidLoad()でSetupView()を実行 3 4 // SetupView 5 func SetupView() { 6 let bottomBorder = CALayer() 7 bottomBorder.frame = CGRect(x: 0, y: SafeAreaView.frame.height, width: SafeAreaView.frame.width, height: 1) 8 bottomBorder.backgroundColor = UIColor.lightGray.cgColor 9 SafeAreaView.layer.addSublayer(bottomBorder) 10 }
発生している問題・エラーメッセージ
いろんな記事をみてみると、オートレイアウトで端末にあわせてviewのサイズが変わるまえにCALayerでフレームサイズ?を図ってるからオートレイアウトでviewの高さが変更されたときに下線がずれるものだと把握しています。
よってviewDidLoad()内ではなく、viewDidAppear()内でSetupView()を実行したら期待どおりの位置に下線を引いてくれました。
しかし、viewDidAppear()でSetupView()を実行するとなると下線が表示されるまで若干のタイムロスがあります(汗)
なにかいい解決策はありませんか・・・
またおそらく同じ理由で、CollectionViewのセルのサイズも端末によってずれています。
下記のように設定しているにも関わらずセルのサイズがCollectionViewのサイズに適応してくれません。
let layout = UICollectionViewFlowLayout() layout.itemsize = collectionView.bounds.size
わかる方がいらっしゃいましたらご教授いただけたらと思います。
どうぞよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Swift
XCODE11
回答1件
あなたの回答
tips
プレビュー