كيفية استعادة حيوي مستوى التكبير وUIScrollView والموقف عندما تعيد إطلاق التطبيق الخاص بي؟

StackOverflow https://stackoverflow.com/questions/654845

سؤال

وطلبي يتكون من UIImageView داخل UIScrollView، ويمكنني عرض صورة كبيرة داخل منه. وجهة نظر التمرير يسمح للمستخدم لقرصة إلى التكبير / التصغير في الصورة، وأن كل يبدو أن تعمل على ما يرام.

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

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

وكيف يمكنني أن أفعل هذا؟

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

المحلول

ولقد وجدت وسيلة لتكبير UIScrollView برمجيا. وهذا قد تساعدك على تحديد مستوى التكبير المطلوب عند بدء التشغيل.

ونموذج التعليمات البرمجية، جنبا إلى جنب مع الطبقة ZoomScrollView بتغليف السحر التكبير المطلوبة ومناقشة تفصيلية لكيفية (ولماذا) UIScrollView متاح على الموقع github.com/andreyvit/ScrollingMadness/ .

نصائح أخرى

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

وسأل أحدهم هذا منذ فترة، ولكن لا أعتقد أن عليك مثل <وأ href = "https://stackoverflow.com/questions/611865/how-do-i-reset-ie-un-zoom -A-uiscrollview "> الجواب . نأمل ستحصل على أفضل واحد.

وأفعل مثل هذا: عند إنهاء حفظ zoomlevel (myScrollview.zoomScale) وأصل إطار contentview.

عند إعادة فتح يمكنك تعيين zoomscale. لديك أيضا لضبط حجم المحتوى إلى zoomlevel جديدة، لأن خلاف ذلك حدود غير صحيحة.

    [myScrollview setZoomScale:savedZoomScale];
    CGSize newsize = CGSizeMake(origsize.width * savedZoomScale, 
                                 origsize.height * savedZoomScale);
    myScrollview.contentSize = newsize;

لتعيين الأوفست:

[myScrollView setContentOffset:savedFrameOrigin animated:YES];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top