0

のサブクラスである TableViewController がありPFQueryTableViewControllerます。のサブクラスであり、タイプ の 2 つのカスタム プロパティを持つ
動的な TableViewCells を表示します。 次の図のように、どちらもストーリーボードに設定されています。 さまざまなビューの背景は、ビューが見えるように色付けされています。両方のラベルのテキスト サイズが同じ 12pt に設定されていることに注意してください。 では、両方のラベルを PFTableViewCellIBOutlet UILabel

ここに画像の説明を入力

tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object

cell.dateLabel.text = stringFromDate; // the date is set earlier
cell.activityLabel.text = @"Test";

アプリを実行すると、次の画像が表示されます:
ここに画像の説明を入力
1) テキストは正しく書かれていますが、2) 背景は色付けされていません。3) 日付フィールドのみが 12 pt のテキスト サイズであるのに対し、アクティビティ ラベルはサイズは 17 pt です。3) アクティビティ ラベルの高さは、ストーリーボードで定義されているものと異なりますが、それよりも小さくなっています。

もちろん、セル ラベルは正しく設定されており、「正しい」セルはキューから取り出されています (そうしないと、カスタム プロパティにアクセスできませんでした)。また、プロパティは正しくリンクされています (そうしないと、テキストが正しく表示されません)。
テーブル ビュー コントローラーには、テーブル ビュー セルのストーリーボード設定を上書きするデリゲート メソッドがありません。

だから私の質問は:

テーブル ビュー セルのストーリーボード設定が部分的にしか使用されないのはなぜですか (最初のラベルのテキスト サイズ)、それらのほとんどは無視されます (背景色、高さ、および 2 番目のラベルのテキスト サイズ)。正しく動作させるには?

4

1 に答える 1

0

問題が解決しました!Xcode6 のバグのようです:

古いバージョンのストーリーボードを使用している印象があったので、シミュレーターからアプリを削除し、アプリを再起動しました。アプリはすぐにクラッシュし、「バンドル NSBundle に「メイン」という名前のストーリーボードが見つかりませんでした...」というエラーが表示されました。
その後、プロジェクト ナビゲーターで同じストーリーボードへの参照が 2 つあることに気付き、1 つを削除しました。
エラー メッセージに示されているファイル パスを調べたところ、ストーリーボードがターゲットに含まれていないことがわかりました。
ターゲットに再度含めるために、プロジェクトナビゲーターでストーリーボードをソースコードとして開きました-その後、ID インスペクターにこのファイルのプロパティを表示します (通常どおりインターフェイスビルダーファイルとして開くと、ID インスペクターウィンドウは空です)。実際、ターゲット メンバーシップのチェックボックスはオフになっていました。再度確認したところ、クラッシュは発生しなくなり、正しいテーブル ビュー セル設定が使用されました。

問題は、新しいストーリーボードがターゲットに含まれていなかったため、シミュレーターが古いバージョンのストーリーボードを使用していたため、古いストーリーボードが更新されなかったことです。

于 2015-04-20T05:13:34.327 に答える