Pertanyaan Tampilan Layar Inti Animasi di iPad


Saya sedang membangun sebuah adegan dengan Core Animation yang terlihat mirip dengan screensaver di Apple TV lama. Aliran gambar terus menerus (masing-masing a CALayer) lewat secara vertikal, dari bawah ke atas. Untuk mencapainya, setelah animasi lapisan berakhir ketika gambar bergerak tidak terlihat, itu akan diposisikan kembali ke bawah, menugaskan gambar baru, dan dihidupkan kembali. Ini terjadi di animationDidStop metode delegasi. Namun, saya perhatikan bahwa jika saya mengambil tangkapan layar saat menjalankan aplikasi di iPad, lapisan tidak pernah diposisikan ulang ke bawah, dan tidak terlihat lagi. Saya telah mengisolasi masalahnya, dan saya yakin bahwa mengambil tangkapan layar yang menyebabkannya. Ini membuat saya berpikir bahwa mengambil tangkapan layar memiliki efek pada waktu animasi. Begitu...

  1. Apa dampak mengambil screenshot pada iDevice pada animasi?
  2. Apakah ada cara yang lebih baik untuk mencapai efek ini?

9
2017-12-26 21:16


asal


Jawaban:


Anda selalu dapat mencoba menangkap tangkapan layar secara terprogram berdasarkan konten tampilan, lalu menyimpannya sebagai tangkapan layar. Saya tidak tahu objek Anda, tetapi ini adalah apa yang telah saya lakukan sebelumnya. Semua konten saya untuk tangkapan layar masuk CaptureView.

CGRect screenRect = [[UIScreen mainScreen] bounds];
UIGraphicsBeginImageContext(CaptureView.frame.size);

CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor clearColor] set];
CGContextFillRect(ctx, screenRect);

[CaptureView.layer renderInContext:ctx];

UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(screenImage, nil, nil, nil);
UIGraphicsEndImageContext();

Apakah animasimu dalam stasioner UIImageView? Jika itu adalah tampilan gambar yang ingin Anda deteksi keluar dari layar, cukup gunakan saja frame.origin.y dibandingkan dengan 0.


1
2018-05-29 21:15



Anda dapat menggunakan presentationLayer untuk menangkap tangkapan layar saat animasi Anda beranimasi. yaitu [CaptureView.layer presentationLayer]

Anda juga dapat mendeteksi sentuhan saat menjiwai dalam presentasiLayer CALayer.


0
2017-07-10 04:20