Blog Ranking

にほんブログ村 IT技術ブログへ

2011年3月1日火曜日

申請してたiPhone/iPadユニバーサルアプリがリジェクトされた。

一週間ぐらい前からiPhone/iPadユニバーサルアプリをAppStoreに申請してたんだけど、今日リジェクトされてしまった。

問題点は2つ。

1つ目は、MKMapView(グーグルマップ)のロゴがディスプレイ内に表示されず隠れてしまっていた。
MKMapViewのframe.size(サイズ)プロパティを設定するときこんな感じで画面回転に合わせて設定してた。


- (void)setViewsInMainVC:(UIInterfaceOrientation)orientation{
CGSize naviBarSize = self.navigationController.navigationBar.frame.size;
CGSize toolBarSize = self.toolBar.frame.size;

if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) {
mapview.frame = CGRectMake(0, toolBarSize.height, 768, 1024 - naviBarSize.height - toolBarSize.height);
toolBar.frame = CGRectMake(toolBar.frame.origin.x,toolBar.frame.origin.y,768,toolBarSize.height);
}else {
mapview.frame = CGRectMake(0, toolBarSize.height, 704, 768 - naviBarSize.height - toolBarSize.height);
toolBar.frame = CGRectMake(toolBar.frame.origin.x,toolBar.frame.origin.y,704,toolBarSize.height);
}
}


原因は、ステータスバーの高さ分を考慮していなかったこと。地図の下の方が切れてしまってた。
iPadのディスプレイサイズは1024px*768pxでステータスバーの高さは20pxなので、コード内で1024を1004に、768を748に直さないといけなかった。
iPadアプリでは画面の回転に対応させる必要があり、Interface Builder使うよりもプログラム的に色々設定する必要がある。そこで起こった単純ミス。
こんなのでリジェクトされてたら誰も幸せにならないので、皆さん気をつけてください。(誰もやらないか。。。)


2つ目は、UIPopovercontrollerを吹き出し表示するときに、吹き出しの位置がおかしいとのことだった。
基本的に、そのUIPopovercontrollerを表示するために押した場所(ボタン等)から出さないといけないようだ。

つまりボタンから出す場合は素直にsenderから出しとけってことだね。
こんな風に。


- (IBAction)presentRoutePopoverVC:(id)sender{
//既にポップオーバーが表示されている場合は消す
if (popover.popoverVisible) {
[popover dismissPopoverAnimated:YES];
//ポップオーバーが表示されていない場合は表示する
}else {
popover.popoverContentSize = CGSizeMake(320, 750);
[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
}


どっちも単純なミスで恥ずかしいけど,iPadアプリの申請は初めてで知らないことも多かったので勉強になった。
よ〜〜し、再申請した!

0 件のコメント:

コメントを投稿