[解決済み] iOS7でUITableViewCellのセパレータが消える件
質問
私は
UITableView
を使用すると、iOS 7 でのみ発生します。
UITableViewCellSeparator
が最初の行の上と最後の行の下に表示されなくなります。行を選択したり、何らかのスクロール操作を行うと、表示されることがあります。
私の場合
tableView
から読み込まれます。
Storyboard
で
UITableViewStylePlain
のようなスタイルになります。問題はきっと
UITableViewCellSeparatorStyle
であり、デフォルトの
UITableViewCellSeparatorStyleSingleLine
.
で読んだように Apple Dev Forums ( ここで と はこちら ) 他の人々もこのような問題を抱えており、例えばいくつかの回避策が見つかっています。
Workaround: disable the default selection and recreate the behaviour in a method
trigged by a tapGestureRecognizer.
しかし、私はまだこのようなセパレータの奇妙な動作の理由を探しているところです。
何か思い当たることはありますか?
更新しました。 XCode 5.1 DPとiOS 7.1 betaで見たように、Appleはこの問題を修正しようとしたようです。現在、セパレータは、いくつかのリフレッシュの後、最後の行の下に必要に応じて表示されますが、テーブル ビューの作成後には表示されません。
どのように解決するのですか?
影響を受けるセルのサブビュー階層をダンプしてみると
_UITableViewCellSeparatorView
が非表示に設定されていました。どうりで表示されないわけだ!
私はオーバーロードした
layoutSubviews
を私の
UITableViewCell
のサブクラスを作成したところ、セパレータが確実に表示されるようになりました。
Objective-C :
- (void)layoutSubviews {
[super layoutSubviews];
for (UIView *subview in self.contentView.superview.subviews) {
if ([NSStringFromClass(subview.class) hasSuffix:@"SeparatorView"]) {
subview.hidden = NO;
}
}
}
スウィフト :
override func layoutSubviews() {
super.layoutSubviews()
guard let superview = contentView.superview else {
return
}
for subview in superview.subviews {
if String(subview.dynamicType).hasSuffix("SeparatorView") {
subview.hidden = false
}
}
}
ここで提案された他の解決策は、私にとって一貫して機能しなかったか、または不格好に思えました(カスタム1pxフッタービューを追加する)。
関連
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] iOS 8 UITableViewのセパレータインセット0が機能しない件
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
-
[解決済み】1つのUITableViewCellのセパレータラインを非表示にする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
dyld: ライブラリがロードされていません。エラーの解決
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
IOS8 Development Guide Error Thread 1: signal SIGABRT
-
[解決済み] 奇妙な不要なXcodeログを隠す
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] iOSで現在のデバイスの言語を取得するには?
-
[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?
-
[解決済み] 16進カラーバリューの使用方法
-
[解決済み] iOSアプリをApple Developer Programや脱獄せずにデバイス上でテストすることができます。
-
[解決済み] swiftで電子メールアドレスを検証する方法は?