3

アプリでフォントをカスタマイズしない場合、MFMailComposeViewControllerが表示され、正常に機能します。しかし、私がそうするとき、それが提示された時間の50%は、ユーザーがちょうどそれを閉じようとした場合とまったく同じmailComposeController:didFinishWithResult:結果で、彼の代理人に直接電話をかけます。MFMailComposeResultCancelled

また、コンソールでこのエラーをトリガーします。

_serviceViewControllerReady:error: Error Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed. (XPCObjectsErrorDomain error 2.)"

メールコンポーザーはアピアランスプロキシを好まないようですが、問題は、アピアランスプロキシを無効にすることができないということです。

アプリケーションのすべてのナビゲーションバーには、カスタムデザインがあります。これを実現するために、次のような外観プロキシを使用しました。

UIImage *navBarBackground = [UIImage stretchableHorizontalImageNamed:@"navbar-background"];
[[UINavigationBar appearance] setBackgroundImage:navBarBackground forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"navbar-shadow"]];
[[UINavigationBar appearance] setTitleTextAttributes:@{
    UITextAttributeTextColor: [UIColor colorWithRed:0.965f green:0.635f blue:0.647f alpha:1.f],
    UITextAttributeFont : [UIFont brothersBoldFontOfSize:20.f],
    UITextAttributeTextShadowColor: [UIColor blackColor],
    UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0, -1)]
}];

UIBarButtonItem *navBarButtonItemAppearance = [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil];
[navBarButtonItemAppearance setTitleTextAttributes:@{
    UITextAttributeTextColor: [UIColor colorWithRed:0.478f green:0.008f blue:0.023f alpha:1.f],
    UITextAttributeFont : [UIFont brothersBoldFontOfSize:17.f],
    UITextAttributeTextShadowColor: [UIColor colorWithWhite:1.f alpha:0.3f],
    UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0, 1)]
} forState:UIControlStateNormal];

次のように、ポップオーバーの背景のカスタマイズをいくつか削除しました。

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

ポップオーバーには問題なく機能しています。ただし、「含まれている場合」nilのMFMailComposeViewControllerを使用して設定した場合でも、メールコンポーザー用に削除することはできません。

また、サブクラス化するか、システムフォントを設定しようとしますが、何も変わりません。彼は提示され、エラーを印刷し、代理人に電話して解雇されました。動作しているときは、フォントがシステムによって適用されず、動作していないときは、以下のようなカスタムフォントが表示されることを確認しました。

ここに画像の説明を入力してください

4

1 に答える 1

3

問題は、カスタム フォントの読み込みに時間がかかりすぎて、待機フェンスからのタイムアウトがトリガーされることです。

参照:カスタム タイトル フォントを使用すると、MFMailComposeViewController が viewServiceDidTerminateWithError をスローしてから終了する

于 2013-03-08T09:52:25.120 に答える