سؤال

هل لدى أحدكم أي أمثلة أو الموارد أين يمكنني العثور على معلومات حول التمرير النص طويل جدا لعرض زر التحكم ؟ أنا أفكر في شيء على طول هذه الخطوط.

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

هل هناك طريقة سهلة للقيام بذلك باستخدام "الأساسية" أو بنيت في "الرسوم المتحركة" الأطر على جهاز محمول ؟

[عدل] Iwanted لإضافة المزيد من التفاصيل كما أعتقد أن الناس هم أكثر تركيزا على الطقس أو لا ما أحاول تحقيقه المناسب.زر عن إجابات على لعبة التوافه.فإنه لا يتم تنفيذ أي speciffic وظيفة واجهة المستخدم ولكن لعرض الإجابة.أبل أنفسهم يفعل هذا في iQuiz التوافه اللعبة على آي بود نانو و أعتقد جميلة أنيقة حل الأجوبة التي هي أطول من عرض من زر.

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

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

المحلول

إليك هذه الفكرة:بدلا من الحذف (...), استخدام التدرج على كل جانب حتى اضافية النص يتلاشى بعيدا في لون الخلفية.ثم هل يمكن أن تفعل هذا مع ثلاثة CALayers:واحد نص على تأثير تتلاشى.

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

أما إذا كنت تعتقد أن هذا هو "السهل" يعتمد على مدى معرفتك الأساسية الرسوم المتحركة, ولكن أعتقد مرة كنت تعلم API ستجد هذا ليس سيئا جدا و يستحق عناء.

نصائح أخرى

دون الرغبة في أن تكون منفرجة, ربما عليك إعادة التفكير في المشكلة.زر يجب أن يكون واضحا ويمكن التنبؤ به وظيفة.إنه ليس مكانا لتخزين و عرض النص.ربما يمكن أن يكون وصف تظهر على الشاشة مع لطيفة القياسية الزر أدناه ؟

تحديث مع شفرة المصدر على سبيل المثال:

هنا بعض جاهزة للاستخدام مصدر التعليمات البرمجية المثال (في الواقع كامل مضغوط المشروع كسكودي مع صورة بنك الاستثمار القومي الملفات و بعض التعليمات البرمجية المصدر) وليس على اي فون ، وليس باستخدام الأساسية الرسوم المتحركة, فقط باستخدام بضعة بسيطة NSImages و NSImageView.هو مجرد رخيصة هاك, فإنه لا تنفيذ كامل الوظائف المطلوبة (آسف ولكن أنا لا أشعر كتابة التعليمات البرمجية المصدر الخاصة بك بالنسبة لك :-P), الرهيبة تخطيط كود (لقد اخترق هذا معا في غضون بضع دقائق ، لذلك لا يمكن أن نتوقع أي أفضل؛ -)) و انها مجرد مظاهرة كيف يمكن أن يتم هذا.ويمكن أن يتم ذلك مع جوهر الرسوم المتحركة أيضا ، ولكن هذا النهج هو أكثر بساطة.تأليف زر الرسوم المتحركة في NSImageView ليست لطيفة كما subclassing على NSView مباشرة الطلاء إلى السياق ، ولكن الأمر أبسط من ذلك بكثير (أردت فقط أن هاك معا أبسط الحلول الممكنة).كما أنه لن انتقل مرة أخرى بمجرد تمريره على طول الطريق إلى اليمين.لذلك تحتاج فقط طريقة أخرى أن انتقل مرة أخرى والبدء في آخر NSTimer أن الحرائق 2 ثوان بعد لفت النقاط إلى اليسار.

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


التحديث بسبب تعليق على جوابي:

إذا كنت لا تستخدم أبل عناصر واجهة المستخدم على الإطلاق أنني لا أرى مشكلة.في هذه الحالة الخاص بك زر حتى زر, انها مجرد نقر عرض (NSView إذا كنت تستخدم الكاكاو).يمكنك فقط الفئة الفرعية NSView كما MyAnswerView والكتابة الطلاء طريقة الطلاء في عرض كل ما يحلو لك.نص متعدد الأسطر ، التمرير النص, النص 3D الرسوم المتحركة, انها تماما متروك من الخيال الخاص بك.

هنا مثال, تبين كيف لشخص ثم subclassed NSView لإنشاء كاملة مخصصة التحكم غير موجود بشكل افتراضي.سيطرة يبدو مثل هذا:

alt text

ترى الشيء المضحك في الزاوية اليسرى العليا?هذا هو التحكم.هنا كيف يعمل:

alt text


أنا أكره أن أقول ذلك ، كما أنه لا توجد إجابة على سؤالك, ولكن "لا تفعل ذلك!".أبل لديها مبادئ توجيهية كيفية تنفيذ واجهة المستخدم.بينما أنت حر تجاهلها, مستخدمي أبل تستخدم إلى معهد اليونسكو للإحصاء هذه المبادئ التوجيهية التالية و لا عقب لهم سيتم إنشاء تطبيقات أبل المستخدمين على العثور على القبيح و صغيرة جذابة.

ها هي أبل المبادئ التوجيهية واجهة الإنسان

اسمحوا لي أن أقتبس من هناك

ضغط على زر محتويات ووضع العلامات

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

التسمية على زر يجب أن يكون الفعل أو الفعل العبارة التي تصف العمل ينفذ—حفظ وإغلاق ، طباعة ، حذف أو تغيير كلمة المرور ، وهلم جرا.إذا ضغط على زر يعمل على واحد إعداد تسمية الزر كما على وجه التحديد ممكن ؛ "اختيار الصورة...," على سبيل المثال ، أكثر مفيدة من "اختيار..." لأن الأزرار الشروع في إجراءات فورية ، يجب أن لا يكون من الضروري استخدام "الآن" (مسح ضوئي الآن ، على سبيل المثال) في التسمية.

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

أزرار يجب أن يحتوي على مفردة الفعل أو الفعل العبارة لا إجابات لعبة التوافه!إذا كان لديك ما بين 2 و 5 إجابات, يجب عليك استخدام أزرار الراديو أن يكون للمستخدم تحديد الإجابة موافق زر أن يكون المستخدم تقبل الإجابة.لأكثر من 5 إجابات ، يجب عليك أن تنظر المنبثقة محدد بدلا وفقا للمبادئ التوجيهية ، على الرغم من أنني أعتقد أنه سيكون بدلا من ذلك القبيح في هذه الحالة.

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

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

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

هذه ليست جيدة جدا واجهة المستخدم الممارسة, ولكن إذا كنت لا تزال تريد أن تفعل ذلك أفضل رهان هو أن تفعل ذلك عن طريق نقر div على غرار أن تبدو وكأنها زر.

تعيين عرض div صريح قيمة و تجاوز الخفية ، ثم استخدام برنامج نصي المنفذة على فاصل لضبط scrollLeft من شعبة.

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