قام IOS 13 بتحديث التحكم المقطعي ، ولكن بالنسبة لأولئك الذين لا يستطيعون ترقية Xcode ، فهو غير متوفر فقط. لذلك قررت أن أكتب كيف أقوم بإجراء نفس التحكم المقطعي بسرعة.
دعنا نذهب!
أولاً ، انتقل إلى لوحة العمل. نضع عنصر العرض على ViewController لدينا.

نصلحها بالقيود التي تريدها وفي أي مكان تحتاج إليه.
قم برسم الخلفية وتحقق من المقطع في مربع الاختيار Bounds.

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

بعد ذلك ، نقوم بإصلاحه باستخدام ثوابت ذات مسافة بادئة 2 بكسل من جميع الجوانب.

وسيتم وضعها داخل العرض الأول الخاص بك كما في الصورة أدناه.

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

الآن نقوم بإنشاء ثوابتين أخريين لهذا العرض من اليسار واليمين باستخدام مسافة بادئة 0 بكسل

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

الآن حدد الزرّين ووضعهما داخل العرض الرمادي ، لكن يجب أن يكونا في أسفل الصفحة بحيث لا يتداخل نصهما مع طريقة العرض البيضاء عند تحريكه. نصلح أزرارنا في الوسط نسبة إلى نصفها.

هذا كل شيء. الآن قم بتوصيل عناصرنا بلوحة العمل مع ViewController.
عرض الرمادي اتصلت - fonView.
عرض أبيض يسمى - blockView.
أيضا ، زران على زر واحد و buttonTwo خلق عمل لهم.

نحن أيضًا ندخل في ثوابتنا الثوابت التي قطعناها على أنفسنا ذات الأولوية 750. دعنا نسميها:
@IBOutlet weak var checkButtonOne: NSLayoutConstraint! @IBOutlet weak var checkButtonTwo: NSLayoutConstraint!

في viewDidLoad ، نصف فقط تقريب طريقة العرض الخاصة بنا ونجعل ثابتًا واحدًا مساويا للأولوية 950 بحيث لا يكون العرض الأبيض في المنتصف مثل الخط ، ولكن يبدو أنه مقطع محدد.
override func viewDidLoad() { super.viewDidLoad() fonView.layer.cornerRadius = 10 blockView.layer.cornerRadius = 9 checkButtonOne.priority = UILayoutPriority(rawValue: 950) }
خط النهاية. في زر الإجراء ، نكتب هذا الرمز. خلاصة القول هي أننا نغير أولوياتنا والرأي يزداد حسب الحجم المطلوب ، ونحن نقوم بتحديث الثوابت المتحركة لدينا.
@IBAction func buttonOne(_ sender: UIButton) { checkButtonOne.priority = UILayoutPriority(rawValue: 950) checkButtonTwo.priority = UILayoutPriority(rawValue: 750) UIView.animate(withDuration: 0.5) { self.view.layoutIfNeeded() } } @IBAction func buttonTwo(_ sender: UIButton) { checkButtonOne.priority = UILayoutPriority(rawValue: 750) checkButtonTwo.priority = UILayoutPriority(rawValue: 950) UIView.animate(withDuration: 0.5) { self.view.layoutIfNeeded() } }
هذا كل شئ! تحقق!
