アップデート:
「Evgeny S」からの情報のおかげで、削除ボタンを覆っているのはセルの背景であると判断できました。cell init の最初に次の関数を呼び出しました。
- (void) setupGradientsWithHeight:(int) the_height
{
CAGradientLayer* gradient = [CAGradientLayer layer];
gradient.frame = CGRectMake(self.bounds.origin.x,
self.bounds.origin.y,
self.bounds.size.width,
the_height);
gradient.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithRed:218.0f/255.0f
green:218.0f/255.0f
blue:220.0f/255.0f
alpha:1.0].CGColor,
(id)[UIColor colorWithRed:180.0f/255.0f
green:180.0f/255.0f
blue:184.0f/255.0f
alpha:1.0].CGColor,nil];
UIView* bgview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
[bgview.layer addSublayer:gradient];
[self setBackgroundView:bgview];
}
この問題は、backgroundview を追加しないことで解決されます。ただし、各セルのグラデーションの背景を維持しながら、どのように解決できるのでしょうか?
2 つのうちの 1 つが起こっている可能性があります。削除ボタンが表示されると、背景ビューがシフトされてから戻るか、サイズが縮小されてから戻るかのいずれかです。グラデーションフレームの幅コンポーネント「self.bounds.size.width」をいじってみましたが、この関数はセルの初期化時に1回しか呼び出されないため、それがどのように影響するかはまだわかりません。
元の投稿:
iOS6 SDK の下で Xcode4 でアプリを作成しましたが、新しい環境 (Xcode5 および iOS7 SDK) にロードした後、問題が発生しました。移行時に表示されたすべてのビルド エラーと警告を解決したことに注意してください。
いくつかのセルを含むテーブルビューがあります。編集モードに入った後、赤いトグル ボタンをクリックしてセルの削除モードを開始すると、アニメーションが開始され、[削除] ボタンが表示されますが、短時間だけで、突然再び非表示になります。
私が注意すべきもう1つの奇妙な点は、削除ボタンが隠されている間でも、あるべき場所をクリックしてセルを削除できることです。
「カスタムコード」をできるだけ多く取り出そうとしました。オーバーライドした関数を削除し、可能な限り元の状態に戻そうとしましたが、役に立ちませんでした。
ある時点で、出力ログに奇妙なメッセージが表示されていました。なんらかの理由でメッセージが表示されなくなり、そのとき何をしていたか思い出せないようです。
これを引き起こしている可能性のあるものについての考えや推奨事項はありますか?