سؤال

لدي بعض الأزرار في UIView.مشكلتي هي أنها تقطع في الجانب الأيمن من UIVIEW.كيف يمكنني منع هذا؟

نص بديل http://img.skitch.com/20090629-mj32p1bkff476256pwrpt69n2d.png

لقد قمت بفحص خاصية Clip Builders Interface ، ولكن ليس حلًا لهذه المشكلة.

يعتبر

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

المحلول 3

كيندال ، شكرا لإجابتك.

هنا هو الحل الخاص بي:

    if(previousFrame.origin.x + theStringSize.width > 220){
            roundedButton.frame = CGRectMake(15, previousFrame.origin.y + 30 ,  theStringSize.width + 8, theStringSize.height);
            [myContainer insertSubview:roundedButton belowSubview:[tagsContainer.subviews lastObject]];
        }else {
            roundedButton.frame = CGRectMake(previousFrame.origin.x + previousFrame.size.width + 5, previousFrame.origin.y,  theStringSize.width + 5, theStringSize.height);
            [myContainer insertSubview:roundedButton belowSubview:[tagsContainer.subviews lastObject]]; 
        }

أحسب عدد البكسلات التي قمت بنقلها من الجانب الأيسر.عند عتبة ما (في حالتي 220) أبدأ سطرًا جديدًا.

نصائح أخرى

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

لا يمكن وضع الأزرار المعنية على الشاشة كما هي - ما هو التأثير الذي تبحث عنه؟

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

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

لقد كنت أستخدم Java وبدأت مؤخرًا في تعلم إطار عمل Apple Obj-C.

أحد البدائل للتمرير وفصل الصفوف هو استخدام تخطيط "الشبكة" مع صف واحد وأعمدة n، حيث n هو عدد الأزرار.كل خلية لها حجم ثابت.وسيتعين عليك تغيير حجم الأزرار الخاصة بك (طرق العرض الفرعية) في setNeedsLayout الخاص بطريقة العرض المشرف الخاصة بك:الطريقة لأي عرض تحتاجه بحيث تناسب جميع الأزرار الصف.

راجع فئة GridLayout في Java.

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