مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

دوره تکمیلی آموزش iOS : سفارشی سازی Navigation Bar


در جلسه قبل از دوره تکمیلی آموزش برنامه نویسی iOS ، ما به شما ، نحوه سفارشی سازی ظاهر Tab Bar را نشان دادیم. در این جلسه ، صحبت در مورد نحوه سفارشی سازی UI و استفاده از Appearance API را برای ساخت Navigation Bar جذاب تر ، ادامه خواهیم داد.

در این جلسه ، موارد ذیل را آموزش خواهیم داد:

  1. سفارشی سازی View با تصویر پس زمینه.
  2. سفارشی سازی UINavigationBar از جمله تصویر پس زمینه و style متن مربوط به tittle.
  3. سفارشی سازی ظاهر UIBarButtonItem.

طبق روال ، قصد داریم مفاهیم را با تبدیل یک navigation bar ساده به یک گراف سفارشی شده ، نشان دهیم. از این رو ، برای کمک به شما جهت تمرکز بر یادگیری مبحث سفارشی سازی ، ما پروژه Xcode را برای شما ، آماده کرده ایم.  قبل از ادامه کار ، ابتدا پروژه Xcode را از اینجا Xcode project دانلود نمایید (نکته: پروژه با استفاده از Xcode 4.5 ایجاد شده است).

اگر پروژه ساخته شده را اجرا نمایید ، خواهید دید که navigation UI اپ ساده است. اکنون ، با هم کار خواهیم کرد تا navigation bar سبک بندی شده ، bar button سفارشی سازی شده و تصویر پس زمینه خودمان را به view اختصاص دهیم.

 

سفارشی سازی View Background

ابتدا ، می خواهیم که پس زمینه view controller را با تصویر موردنظر خود ، تغییر دهیم. اگر شما ، پروژه Xcode را باز نمایید ، خواهید دید که تصاویری را ما برای شما ، اضافه کرده ایم. برای تنظیم تصویر پس زمینه ، فایل “RecipeViewController.m” را باز کرده و کد زیر را به انتهای متد “viewDidLoad” اضافه می کنیم:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"common_bg"]];

می توانیم از خصیصه “backgroundColor” مربوط به view ، برای تغییر رنگ پس زمینه استفاده نماییم. ممکن است ندانید که از همین خصیصه می توانیم برای تنظیم تصویر پس زمینه نیز استفاده نماییم. ترفند این است که یک شی UIColor با استفاده از “colorWithPatternImage” ایجاد می کنیم. در طول انجام عملیات طراحی ، تصویر موجود در pattern color به عنوان کاور ، به صورت کاشی کاری ، View area را پوشش می دهد.

بعد از این تغییر ، اپ را کامپایل کرده و اجرا می نماییم. اپ ، باید شبیه تصویر زیر باشد:

 

سبک بندی UINavigationBar

پیش از iOS 5 ، توسعه دهندگان تنها می توانستند سبک navigation bar را از طریق تعدادی از خصیصه ها تغییر دهند. اما ، مشکل این است که تغییر ات، تنها در navigation bar مربوط به یک view خاص اعمال می شود. در iOS 5 و بعد از آن ، SDK به توسعه دهندگان اجازه می دهد ، سبک بندی navigation bar را با استفاده از Appearance API انجام دهند. به راحتی می توانیم ظاهر navigation bar ها را در سراسر اپ ، با استفاده از appearance proxy ، یعنی ([UINavigationBar appearance]) سفارشی سازی نماییم.

تغییر پس زمینه Navigation Bar

فایل “AppDelegate.m” را باز کرده و کد زیر را در متد “application:didFinishLaunchingWithOptions” اضافه می کنیم:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIImage *navBackgroundImage = [UIImage imageNamed:@"navbar_bg"];
    [[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];
 
return YES;
}

اولین خط از کد فوق ، شیء UIImage  را برای تصویر پس زمینه ما که مربوط به navigation bar است ، ایجاد می کند. سپس ، ما از appearance proxy برای تخصیص تصویر استفاده می کنیم.

سفارشی سازی متن عنوان Navigation Bar

در ادامه ، ما سبک فونت مربوط به متن tittle را تغییر خواهیم داد. می توانیم سبک متن را با استفاده از خصیصه های “titleTextAttributes” مربوط به navigation bar ، سفارشی سازی نماییم. می توانیم فونت ، رنگ متن ، رنگ سایه متن و آفست متن سایه (text shadow offset) مربوط به tittle را در text attributes dictionary ، با استفاده از کلیدهای صفت text ، زیر تعیین نماییم:

  • UITextAttributeFont  - کلید فونت
  • UITextAttributeTextColor  - کلید رنگ متن
  • UITextAttributeTextShadowColor  - کلید رنگ متن سایه
  • UITextAttributeTextShadowOffset  - کلید آفست استفاده شده برای سایه متن.

در متد “application:didFinishLaunchingWithOptions” از فایل AppDelegate.m ، کد زیر را اضافه می کنیم:

    [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                           [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], UITextAttributeTextColor,
                                                           [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8],UITextAttributeTextShadowColor,
                                                           [NSValue valueWithUIOffset:UIOffsetMake(0, 1)],
                                                           UITextAttributeTextShadowOffset,
                                                           [UIFont fontWithName:@"HelveticaNeue-CondensedBlack" size:21.0], UITextAttributeFont, nil]];

کد فوق ، یک سبک متن را برای عنوان navigation bar ارائه می دهد. ما از HelveticaNeue-CondensedBlack   به عنوان نوع فونت استفاده کردیم و رنگ متن را به سفید تنظیم نموده و یک سایه به متن اضافه کردیم.

اکنون ، اپ را دوباره کامپایل و اجرا می کنیم. چیزی که در Navigation bar سفارشی شده ، مشاهده می کنیم ، مطابق تصویر زیر می باشد:

سفارشی سازی ظاهر UIBarButtonItem

در اخر ، قصد داریم که ظاهر کلید back و هم چنین سایر کلیدهای Navigation bar (یعنی UIBarButtonItem) را تغییر دهیم. دوباره ، فایل “AppDelegate.m” را باز کرده و کد زیر را در متد “application:didFinishLaunchingWithOptions” اضافه می کنیم:

    // Change the appearance of back button
    UIImage *backButtonImage = [[UIImage imageNamed:@"button_back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 6)];
    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
 
    // Change the appearance of other navigation button
    UIImage *barButtonImage = [[UIImage imageNamed:@"button_normal"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
    [[UIBarButtonItem appearance] setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

ما ابتدا ، اشیاء UIImage را با استفاده از تصاویر خودمان (یعنی button_back.png و button_normal.png) ایجاد می کنیم و سپس ، شی image را به عنوان تصویر پس زمینه مربوط UIBarButtonItem ، تنظیم می کنیم. اما ، متد resizableImageWithCapInsets: چه کاربردی دارد؟ کلیدها در Navigation bar اندازه ثابتی ندارند.. اندازه ها بر اساس طول متن کلید ، به طور خودکار تغییر می یابند. برای داشتن کلید مستطیلی لبه گرد ، احتمالاً شما نمی خواهید که کلید را در تمام جهات بکشید. از این رو ، ما از متد resizableImageWithCapInsets: استفاده می کنیم تا cap inset را به تصویر اضافه نماییم. در حین تغییر اندازه تصویر ، در نواحی تحت پوشش یک cap ، اندازه ها تغییر داده نمی شوند. شکل زیر درک بهتری درباره cap inset به شما می دهد:

با استفاده از ساختار UIEdgeInset ، الگوی cap inset را تعریف می نماییم. UIEdgeInsets ، ساختاری است که مقادیر شناور برای هر cap inset ، بالا ، چپ ، پایین و راست از یک تصویر را مشخص می کند. برای مثال ، خط 1 از کد بالا ، به iOS دستور می دهد که 13 پیکسل سمت چپ و 6 پیکسل سمت راست مربوط به تصویر کلید back ، قابل تغییر اندازه نیستند.

بعد از تغییر کد ، دوباره اپ را کامپایل کرده و اجرا می کنیم. اکنون ، کلیدهای back و edit سفارشی شده اند.

امیدواریم که از آموزش این جلسه ، لذت برده باشید. برای داشتن مرجع ، می توانید کد پروژه را از اینجا  download the final Xcode project  دانلود نمایید. Appearance proxy  ، برای توسعه دهندگان iOS ، روش بسیار ساده تری را برای سفارشی سازی کنترل های UI فراهم می نماید. شما می توانید از این قابلیت برای جذابیت بیشتر اپ خود استفاده نمایید. در جلسه بعد ، به شما نحوه سبک بندی سایر مؤلفه های UI مانند UITableView  در اپ iOS را نشان خواهیم داد.

فصلِ: 3 , تعداد قسمت ها: 179 , سطح: صفر تا صد

این فصل در یک نگاه:

در این دوره آموزشی ، برنامه نویسی اندروید و ios را با استفاده از زامارین خواهیم آموخت. همچنین به صورت کاملا پروژه محور ، اپلیکیشن فروشگاهی مشابه دیجی کالا را پیاده سازی خواهیم کرد. در انته…
فصلِ: 5 , تعداد قسمت ها: 221 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

در این فصل:-نمایش notification به کاربر زمانی که اتفاقاتی از قبیل لایک کردن پست و ... میافتد(این مبحث مبحثی مهم بوده و ج…

  توضیحات کلی دوره: با سلام خوش اومدین به حرفه ای ترین دوره ی Swift ابتدای کار ممکن است سوالی برای شما پیش آید: -من نیازی به ساخت اپلیکیشن اجتماعی ندارم چرا باید این دوره را ببینم؟ ج…
فصلِ: 7 , تعداد قسمت ها: 159 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

اپل نویس حرفه ای شوید... با این پکیج کسب درآمد میلیونی کنید....   در این پکیج به نکات ریز و درشت زیادی پرداختیم که خیلی خیلی میتونه به شما کمک کنه که تبدیل به برنامه نویس حرفه ای شوید... …
فصلِ: 12 , تعداد قسمت ها: 126 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

فصل 16 فصل آخرمون هست و میایم توی این فصل یه سری مباحث کوچیکی که جامونده و کارهای نهایی برای انتشار برنامه توی مایکت های…

با سلام نکته:هیچ نیازی به mac و یا iphone نیست... نکته:هیچ نیازی به بلد بودن برنامه نویسی از قبل نیست... مباحثی که توی این دوره مرور میکنیم میتونه ما رو از سطح صفر برنامه نویسی ios به صد …
فصلِ: 6 , تعداد قسمت ها: 194 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل آپدیت های مربوط به دوره را قرار میدهیم…

با سلام و خسته نباشد خدمت کلیک سایتی های عزیز در ادامه با توضیحات مختصری درمورد دوره ی react native با ما همراه باشید: React Native چیست؟ قطعا یکی از آرزوهای برنامه نویسان این میباشد که ب…
فصلِ: 5 , تعداد قسمت ها: 51 , سطح: صفر تا صد

این فصل در یک نگاه:

اموزش پرداخت درون برنامه ای بازار در یونیتی-اموزش خرید سکه در بازی-اموزش خرید مصرفی و غیر مصرفی…

توضیحات کلی مجموعه: آموزش مقدماتی تا پیشرفته یونیتی(ساخت بازی توپ چرخنده-اموزش بازی دوبعدی-اموزش بازی سه بعدی اول شخص شوتر-اموزش بازی سه بعدی رالی (ماشین سواری))   سرفصلهای دوره: نصب ی…
فصلِ: 2 , تعداد قسمت ها: 68 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ساخت یک فروشگاه کوچک-آموزش کار با bottom navigation -آموزش کار با تب بار-آموزش کار با scrollview - آموزش کار با ان…

توضیحات کلی مجموعه: آموزش دوره فلاتر از پایه تا پیشرفته(این دوره به دوره متخصص فلاتر تغییر پیدا کرد) درسال های گذشته تعدا زیادی فریمورک معرفی شد که هرکدام تجربه خاص خودش رو داشت،اما فلاتر …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید