はじめに
UIViewは、初期設定だと画面からViewがはみ出してもそのまま表示されてしまいます。
例えば以下のように高さ230pxのUITableViewCellがあるとして、
UITableViewで表示する際に、最初隠したい為に、44pxとした場合、以下のように崩れてしまいます。
今回はその解決法です。
解決方法 clipsToBounds を使う
今回の事例では、clipsToBoundsを使うと簡単に解決出来ます。
clipsToBoundsと言えば、UIImageViewでimageがViewの外に出ないようにする時によく使われますが、UIViewに対しても適用されます。
今回は、UITableViewCellのUIViewの範囲を出てほしくないので、Cell本体にこの設定を入れます。
class LogDetailDateTableViewCell: UITableViewCell { override func awakeFromNib() { super.awakeFromNib() self.clipsToBounds = true } }
これでUITableViewCellの描画範囲を超えた描画は行われません。
必要な時に、今回の例で言うとDatePickerを載せたCellを足すと言うのもありますが、今回の例では、日付を管理するLabelとDatePickerを同一Cellとして扱ったほうがリソース管理の意味では良いので、高さ改変に耐えれる方法のご紹介でした。