كيفية استعادة حيوي مستوى التكبير وUIScrollView والموقف عندما تعيد إطلاق التطبيق الخاص بي؟
-
19-08-2019 - |
سؤال
وطلبي يتكون من 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];