ポートレートのみの単語ゲームで、静的セルを使用して IAP ストアを表示します。
上の iPhone 4 のスクリーンショットで私の問題を確認できます。下部にあるピンク色のボタン (ビデオ広告を視聴して 150 コインを受け取るため) が表示されません。
これが私のXcodeのスクリーンショットです(全画面表示するにはクリックしてください):
7 つの静的セルを使用します。
- 戻るボタン、タイトル、お金の袋のアイコンが付いた青みがかった上部のセル
- ステータス テキスト (上のスクリーンショットには表示されていません)
- コインパック1
- コインパック2
- コインパック3
- コインパック4
- 動画広告 (下部のピンクのセル - iPhone 4 などのコンパクトなデバイスでは表示されないという問題があります)
そして、この方法でセルのサイズを変更します:
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([indexPath row] == 0)
return 70;
if ([indexPath row] == 1)
return 35;
return 90; // XXX how to change this to 70 for hCompact?
}
私の質問は、コンパクトな高さのデバイス(Adaptive LayoutのhCompactサイズ クラス)のセルの高さをプログラムでサイズ変更する方法です。
アップデート:
私自身の醜い解決策は不十分でした:
@interface StoreCoinsViewController ()
{
int _cellHeight;
}
- (int)setCellHeight // called in viewDidLoad
{
int screenHeight = UIScreen.mainScreen.bounds.size.height;
NSLog(@"screenHeight=%d", screenHeight);
if (screenHeight >= 1024) // iPad
return 160;
if (screenHeight >= 736) // iPhone 6 Plus
return 110;
if (screenHeight >= 667) // iPhone 6
return 100;
if (screenHeight >= 568) // iPhone 5
return 90;
return 72; // iPhone 4s (height=480) and earlier
}
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([indexPath row] == 0)
return 70;
if ([indexPath row] == 1)
return 35;
return _cellHeight;
}