ビュー モードと編集モードを切り替えるテーブル ビューがあります。ビューモードで透明にしたいセルが1つあり、編集モードでは「通常の」セルのように見えます(つまり、白い背景、角の丸い四角形のアウトライン)。基本的に、連絡先アプリで編集モードのオンとオフを切り替えるときに名前セルが行うのと同じことです。
背景が透明な UITableViewCell を作成して背景を透明にする方法の解決策を使用しましたが、元の背景を元に戻す方法がわかりません。
現在、viewDidLoad で 2 つのバックグラウンド ビューを作成しています。
nameCellDefaultBackview = [[UIView alloc] initWithFrame:CGRectZero];
nameCellDefaultBackview.backgroundColor = [UIColor clearColor];
nameCellEditBackview = [[UIView alloc] initWithFrame:CGRectZero];
nameCellEditBackview.backgroundColor = [UIColor whiteColor];
次に、セルにデフォルトの背景ビューを与えます。
nameCell.backgroundView = nameCellDefaultBackview;
setEditing:animated: では、編集モードに応じてセルの背景を設定します。
if (editing) {
nameCell.backgroundView = nameCellEditBackview;
} else {
nameCell.backgroundView = nameCellDefaultBackview;
}
問題は、編集モードでは、セルのように見えるものの代わりに白い長方形が表示されることです-これはまさに私が求めていたものですが、私が望んでいるものではありません:)。backgroundView を nil に設定する (= 変更はないようです)、「初期」バックグラウンド ビューを viewDidLoad に保存する (動作していないようで、デバッガーで変数を調べる) など、他にもいくつか試しました。 setEditing でセルに割り当てようとしたときに 0x0 でした)。
だから私が望むのは、通常モードでこのように見えることです:
編集モードでは次のようになります。
しかし、現在編集モードで取得しているのは次のとおりです。
では、白い背景/境界線/丸みを帯びた角を元に戻すにはどうすればよいですか?