سؤال

أنا أستخدم شريط تنقل ملون وشريط أدوات UIToolbar عالمي ملون في تطبيق iPhone الخاص بي.في عرض المعلومات الخاص بي، لدي زر يفتح MFMailComposeViewController، ولا يزال شريط الأدوات الموجود أعلى هذا العرض (مع الزر "إلغاء" و"إرسال") باللون الأزرق.أنا أتصل بـ MFMailComposeViewController مثل هذا:

-(void)displayMailSheet
{

    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    [picker setSubject:@"..."];

    NSArray *toRecipients = [NSArray arrayWithObject:@"..."]; 

    [picker setToRecipients:toRecipients];

    [self presentModalViewController:picker animated:YES];
    [picker release];

}

هل من الممكن تغيير لون شريط الأدوات الخاص بهذا العرض؟إذا كان ذلك ممكنا، كيف يمكنني أن أفعل هذا؟

هل كانت مفيدة؟

المحلول

وهنا تذهب:

[[picker navigationBar] setTintColor:[UIColor blackColor]];

ولدائرة الرقابة الداخلية 8.0

 [[picker navigationBar] setBarTintColor:[UIColor blackColor]];

نصائح أخرى

وهناك نقطة بسيطة حول هذه الوظيفة تحت iOS7 - خاصية التدرج اللوني لم يعد يؤثر على لون شريط ككل، بدلا من ذلك ببساطة يغير لون 'أرسل' و 'إلغاء' أزرار (الذي، في أسلوب iOS7 ، ببساطة ملون التسميات).

وهذا هو الجدير بالذكر إذا قمت بتغيير لون شريط العنوان إلى شيء مثل الأبيض أو واضحة، وتحت iOS7 الإرسال وسوف إلغاء الأزرار لن تكون مرئية.

ويمكنك أن تفعل ذلك على الصعيد العالمي من appdelegate

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationbar-background.png"] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault]; // MFMailComposeViewController's navigationBar backgroundcolor 

NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor darkGrayColor], UITextAttributeTextColor, [UIColor whiteColor], UITextAttributeTextShadowColor, nil];
[[UINavigationBar appearance] setTitleTextAttributes:textTitleOptions];//MFMailComposeViewController's navigationBar text color 

ونريد فقط أن أؤكد على أن آخر أعلاه عن أبل رفض طلبك هو آخر العمر. هنا هو اقتباس من وثائق MFMailComposeViewController الحالية ...

<اقتباس فقرة>   

على هام : لالتسلسل الهرمي ضوء هذه الفئة هو الخاص، ويجب أن لا تعديله. يمكنك، ومع ذلك، وتخصيص مظهر   المثال باستخدام بروتوكول UIAppearance.

وجرب هذا:

MFMailComposeViewController *mailController  = [MFMailComposeViewController new];

[mailController.navigationBar setTintColor:[UIColor colorWithHue:240.0f/359.0f
                                                      saturation:85.0f/100.0f 
                                                      brightness:60.0f/100.0f 
                                                           alpha:0.0f]];

من مرجع فئة MFMailComposeViewController الرسمي:

مهم:واجهة تكوين البريد نفسها غير قابلة للتخصيص ويجب ألا يتم تعديلها بواسطة التطبيق الخاص بك.[...]

أعتقد أنه سيكون من الأفضل تقديم واجهة تكوين البريد الافتراضية دون أي تغييرات.وإلا فقد ترفض شركة Apple طلبك.

دعونا نسأل هنا إذا كان لدى شخص ما تجربة بهذه الطريقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top