moeum)iOS開発ログ#1


日記。


UIcollectionViewのセルの高さとUIcollectionViewの高さを変更しました.UIViewのアニメは初めてで、まだまだです.

UIスクリーンショット



UICOLLectionView Cell Heightの変更

self.heightAnchor.constant = self.collectionViewHeight
self.collectionView.performBatchUpdates(nil)
CollectionViewHeightが変更された場合は、CollectionViewのPerformBackUpdatesを呼び出して変更のサイズを再表示します.
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        let width = self.weekStackView.frame.width / 7
        let height = self.collectionViewHeight / 5
        return CGSize(width: width, height: height)
    }
CollectionViewHeightは、CollectionViewが占める高さを5に分けてセルの高さを固定します.

UIView Animate

UIView.animate(withDuration: 0.5, delay: 0, options: [.curveLinear]) {
                self.heightAnchor.constant = self.collectionViewHeight
                self.heightAnchor.isActive = true
                self.calendarMemoViewHeightAnchor.constant = self.calendarMemoViewHeight
                self.calendarMemoViewHeightAnchor.isActive = true
                self.collectionView.performBatchUpdates(nil)
                self.calendarMemoView.layoutIfNeeded()
            }
UIViewではアニメーションを使用しています.withDurationを使用してアニメーション時間を決定し、delayを使用して遅延時間を指定し、アニメーション効果を選択します.
Layoutifneedd()メソッドは、呼び出し時に直ちにDrawを同期してやり直すことと理解される.

次はね。


アニメーション部分は隠している間によく表現されていましたが、showでは中央から上下に塗りつぶす問題が解決しました.CollectionViewでは、セルの高さの低下が遅いという問題を解決します.