شريط التنقل الثابت / الثابت في iOS

2

لدي وحدة تحكم ملاحة وعرض مجموعة تحتي داخل تطبيقي. وهناك مشكلة: أستخدم عنوانًا كبيرًا داخل شريط التنقل الخاص بي ، لذلك كل شيء في الداخل ليس ثابتًا. عندما أقوم بتمرير خلايا عرض المجموعة ، فإن العنوان (قمت بإنشائه يدويًا باستخدام UILabel() لنقله كما أريد داخل شريط التنقل) والأزرار تتحرك لأعلى ويتخذ شريط التنقل شكل شريط التنقل iOS 10 ، أعني ارتفاعه. يمكنك أن ترى هنا:

الحالة الطبيعية لشريط التنقل الخاص بي مع تشغيل "تفضيل العناوين الكبيرة":

Imagen 3730

يحدث ذلك عندما أقوم بالتمرير في عرض مجموعة المختارات الخاصة بي ، كل شيء يرتفع

Imagen 3731

لذا فإن السؤال بسيط: كيف تجعل قوة الارتفاع ثابتة لشريط التنقل؟ أريد أن يتم إصلاحه حتى أثناء التمرير. هل هناك افكار؟ هل هو ممكن؟

والسؤال الثاني ، إذا كان الأول مستحيلاً: الحل الآخر لمشكلتي هو جعل شريط التنقل مع إيقاف تشغيل "تفضيل العناوين الكبيرة" أكبر. جربت هذا الرمز:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    let height: CGFloat = 50 //whatever height you want to add to the existing height
    let bounds = self.navigationController!.navigationBar.bounds
    self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)
}

لكنها عملت فقط للألقاب الكبيرة. فكيف يمكنني تكبير شريط التنقل؟

1 إجابة

4
افضل جواب

نعم ، يمكنك إصلاحه. لن يتم التمرير إذا لم يكن العرض الأول في العرض الهرمي هو CollectionView/TableView (ScrollView) .

باستخدام Storyboard / Xib:

النظر في الصورة التالية حيث أ tableView و button تضاف في scene . هنا navigation bar سينهار عند التمرير tableView لان tableView هو أول عرض في viewControllercontainerView التسلسل الهرمي المرفق بشريط التنقل.

Imagen 691102

الآن لجعل شريط التنقل ثابتًا ، إذا قمنا فقط بتغيير ترتيب tableView و button على النحو التالي ، سيتم تعطيل انهيار navigation bar .

Imagen 691103

لتغيير ترتيب view عليك النقر مع الاستمرار والتحريك لأعلى / لأسفل.

إذا كان لديك فقط CollectionView في هذا المشهد ، يمكنك إضافة عنصر نائب view في الأعلى وتعيين height إلى zero على النحو التالي ،

Imagen 595890

برمجيا:

إذا كنت تقوم بإعداد العرض بطريقة برمجية ، فأنت بحاجة فقط إلى إضافة عرض عنصر نائب في الأعلى أو إضافة tableView/collection بعد إضافة وجهات نظر أخرى.

على سبيل المثال ،

self.view.addSubview(UIView(frame: .zero))
self.view.addSubview(tableView) // or collectionView
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام