استخدم عنوان شريط التنقل المتزايد في iOS 11




iphone uinavigationbar (4)

التغيير الوحيد الذي تم UINavigationBar واجهة برمجة تطبيقات UINavigationBar لنظام iOS 11 هو prefersLargetitles فقط. تحقق here

يمكنك القيام بذلك للتطبيقات الخاصة بك مع تغيير صغير واحد: حدد "تفضيل العناوين الكبيرة" لشريط التنقل الخاص بك في IB ، أو إذا كنت تفضل القيام بذلك في الشفرة باستخدام

navigationController?.navigationBar.prefersLargeTitles = true

تصحيح

إذا كنت بحاجة إلى تغيير سمات النص الخاصة بالعنوان الكبير ، فأنت بحاجة إلى استخدام خاصية largeTitleTextAttributes الجديدة على UINavigationBar :

UINavigationBar.appearance().largeTitleTextAttributes = [
    NSForegroundColorAttributeName: UIColor.white
]

تحديث لـ Swift 4.2:

بما أنه تم إعادة تسمية NSAttributedString.Key.foregroundColor إلى NSAttributedString.Key.foregroundColor ، استخدم:

  UINavigationBar.appearance().largeTitleTextAttributes = [
      NSAttributedString.Key.foregroundColor: UIColor.black
  ]

يستخدم iOS 11 Beta 1 عنوان شريط التنقل المتزايد لجميع تطبيقات النظام تقريبًا (بدأ هذا في iOS 10 وتطبيق الموسيقى). أتساءل ما إذا كان لدى Apple واجهة برمجة تطبيقات عامة لهذا الإصدار 11 من نظام التشغيل iOS ، أو ما إذا كانت ستظل خاصة في الوقت الحالي.

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

على الرغم من أنني لم أتمكن من العثور على أي إشارة في UINavigationController و UINavigationBar حتى الآن ، فربما يعرف شخص ما بعض التفاصيل!


لدى prefersLargeTitles: Bool خاصية prefersLargeTitles: Bool . مستندات هنا .

class UINavigationBar {
   var prefersLargeTitles: Bool
}

يحتوي largeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode خاصية كبيرة largeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode خاصية largeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode . مستندات هنا .

class UINavigationItem {
   var largeTitleDisplayMode: LargeTitleDisplayMode
}

يمكن تعديل كلاهما في Interface Builder.

لتشغيل هذا السلوك ، قم بتعيين navigationController.navigationBar.prefersLargeTitles إلى true . ثم يمكنك التحكم في كل وحدة تحكم عرض فردية في مكدس التحكم في التنقل عن طريق تعيين navigationItem.largeTitleDisplayMode .

تتمثل الإرشادات العامة للتصميم من Apple في أنه لا ينبغي استخدام العناوين الكبيرة في كل مكان (على سبيل المثال ، لا يستخدم تطبيق Clock) ، ويفضل بشكل عام أن يستخدم المستوى الأول فقط من وحدة التحكم في التنقل العناوين الكبيرة. ومع ذلك ، هذه مجرد إرشادات عامة.

يتم تقديم العناوين الكبيرة في فيديو New What's in Cocoa Touch (7:37).


نظرًا لأن العناوين الكبيرة متوفرة منذ الإصدار 11 من نظام التشغيل iOS ، يتعين عليك أيضًا التحقق من إصدار نظام التشغيل iOS:

    if #available(iOS 11.0, *) {
        navigationController?.navigationBar.prefersLargeTitles = true
    }

if #available(iOS 11.0, *) {
    self.navigationController?.navigationBar.prefersLargeTitles = true
    self.navigationItem.largeTitleDisplayMode = .always
} else {
    // Fallback on earlier versions
}

لاحظ أن هناك بعض الأخطاء في النسخة التجريبية 1 والتي تتسبب في ظهور العنوان الكبير فقط عند التمرير لأعلى يدويًا.





ios11