0

私は iPhone アプリを作成しています。このアプリでは、ユーザーは SMS を送信できます。iPhone 4 では画面は完璧ですが、iPhone 5 では空白のボックスが表示されます。

アイフォンのみ。iOS 6x

スクリーンショット ( iphone5 ): http://i.stack.imgur.com/ZOqu1.png

ここに画像の説明を入力

#import "smsview.h"

@interface smsview ()

@end

@implementation smsview

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
    [self dismissModalViewControllerAnimated:YES];

    if (result == MessageComposeResultCancelled)
        NSLog(@"Message cancelled");
    else if (result == MessageComposeResultSent)
        NSLog(@"Message sent");
    else
        NSLog(@"Message failed");
}

- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients
{
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    if([MFMessageComposeViewController canSendText])
    {
        controller.body = bodyOfMessage;
        controller.recipients = recipients;
        controller.messageComposeDelegate = self;
        [self presentModalViewController:controller animated:YES];
    }
}


-(IBAction)Text:(id)sender
{
    {
        [self sendSMS:@"" recipientList:[NSArray arrayWithObjects:@"+1-234-567-8910", nil]];
    }
}


- (void)viewDidLoad
{
    [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end
4

1 に答える 1

2

失敗した場合は、次の手順に従ってください。

  1. ここからダウンロードしない場合、Xcode の最新バージョンを使用していますか。

  2. 自動レイアウト機能を使用して、iPhone 5 の画面解像度を使用してデザインを作成できます。これは、4 インチと 3.5 インチの両方のデバイスで機能しますが、この場合、レイアウト マネージャーについて十分な知識が必要です。

  3. アプリの 4 インチの起動イメージを設定します。これは、1136 ピクセルの画面の高さを取得する方法です (それがないと、上下に黒い余白がある 960 ピクセルになります)。アプリを新しい高さの画面に適応させるには、最初に起動画像を次のように変更します。デフォルト-568h@2x.png。そのサイズは 1136x640 (HxW) である必要があります。はい、新しい画面サイズでデフォルトの画像を使用することは、アプリが新しい iPhone 5 の画面全体を使用できるようにするための鍵です..

  4. 自動サイズ変更マスクを適切に設定していれば、うまくいくはずです。

  5. そうでない場合は、適切な自動サイズ変更マスクを使用してビュー レイアウトを調整するか、今後 iOS 6 のみをサポートする場合は自動レイアウトを調べてください。

  6. 特に大きな画面のために何かしなければならないことがある場合は、高さを確認する必要があるようです[[UIScreen mainScreen] bounds](または applicationFrame ですが、存在する場合はステータスバーの高さを考慮する必要があります)。それ。

例えば:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
    //iPhone 4 specific
} else {
    //iPhone 5 specific
}

これで問題が解決することを願っています。

于 2013-03-13T09:44:53.273 に答える