Tocropviewcontroller: Apakah safeAreaInsets salah?

Dibuat pada 25 Sep 2019  ·  14Komentar  ·  Sumber: TimOliver/TOCropViewController

Terima kasih untuk perpustakaan yang luar biasa! 👍

Apa yang sebenarnya ingin Anda capai dengan perpustakaan ini?
Saya hanya punya satu pertanyaan. Posisi toolbar terlalu dekat ke bawah:

Apakah safeAreaInsets.bottom salah?

Butuh proyek contoh yang dapat direproduksi? TestSafeArea.zip

bug rfc

Komentar yang paling membantu

Hai @zhanngao0086! Maaf atas keterlambatannya!

Saya akhirnya punya waktu luang untuk memeriksa apa yang sedang terjadi. Itu aneh karena bahkan pada tingkat wadah induk, safeAreaInsets adalah 0 kecuali untuk takik.

Saya pikir saya sudah memperbaikinya. Ini adalah efek samping lain dari tampilan modal iOS 13 baru. Ternyata jika Anda tidak menyetel modalPresentationStyle ke .fullScreen , pengontrol tampilan tampaknya tidak mematuhi sisipan.

Saya belum mengirimkan rilis pod baru (Server CI saya jatuh ketika saya memperbaruinya ke Catalina. ), tetapi saya menambahkan flag .fullScreen ke cabang master. Bisakah Anda mencoba menarik dari master dan melihat apakah itu berhasil untuk Anda sekarang?

Sintaks untuk menarik dari master melalui CocoaPods adalah:

pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'

Terima kasih!

Semua 14 komentar

@zhangao0086 masalah yang sama di sini di iOS13, juga ketika Anda mengetuk Batalkan aplikasi mogok.. ada pembaruan tentang ini?

ping...

Hai, yang di sana!
Alasannya adalah dalam transisi VC khusus dari CropViewController. Untuk memperbaiki masalah ini, kami harus melakukan riset tentang perbedaan di iOS13 terkait dengan transisi atau.... nonaktifkan saja :)
file: CropViewController.swift, string: 561.

fileprivate func setUpCropController() {
        addChild(toCropViewController)
        transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
        toCropViewController.delegate = self
        toCropViewController.didMove(toParent: self)
    }

Untuk menggunakan transisi default, kami dapat mengomentari/menghapus baris ini:

transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)

Saya tidak berpikir masalah ini adalah masalah transisi kustom saja. Saya menyajikan pengontrol dengan mendorongnya dari UIImagePickerController di popover. Popover di iOS 13 menyertakan panah dalam tampilan, jadi pengontrol ini sekarang menganggapnya lebih besar dari itu dan mengambil ruang ekstra untuk panah. Jadi jika panah berada di sisi kanan, konten pengontrol ini bocor dari layar di sisi kanan, dll. Sesuatu perlu dimodifikasi dengan area aman, tetapi saya tidak yakin apa yang akan memperbaikinya - terutama karena semuanya dilakukan secara terprogram dan ada beberapa pandangan yang terlibat.

Saya percaya bahwa safeAreaLayoutGuide perlu digunakan entah bagaimana, di suatu tempat untuk memperbaikinya. Saya baru saja membaca kode dan sepertinya tidak disertakan di mana pun. Berharap saya bisa lebih banyak membantu. Berikut adalah beberapa tempat lagi di mana orang mengalami masalah ini, yang juga mencakup beberapa cara yang mungkin dilakukan:

https://stackoverflow.com/questions/57988889/ios-13-uipopoverpresentationcontroller-sourceview-content-visible-in-the-arrow

https://stackoverflow.com/questions/57866771/ios-problem-of-display-the-popover-border-in-the-ios13

Juga, jika ini telah diperbaiki dalam kode saat ini, saya mungkin tidak melihatnya karena saya menggunakan Carthage, meskipun saya baru saja memeriksa dan tidak ada pembaruan

Ada pembaruan tentang ini? @TimOliver

Hai @zhanngao0086. Terima kasih banyak untuk aplikasi sampel yang komprehensif!

Saya sibuk memadamkan kebakaran iOS 13 di beberapa proyek saya yang lain sekarang, jadi saya belum sempat melihat ini. Maaf!

Saya akan memeriksanya ketika saya bisa. Sementara itu, jika ada yang menemukan perbaikan dan dapat mengirimkan PR, itu akan sangat dihargai!

Saya awalnya membuat CropViewController sebagai pengontrol tampilan terpisah karena tidak mungkin untuk mengonversi semua antarmuka Objective-C TOCropViewController ke Swift pada saat itu. Tapi saya pikir interoperabilitas telah meningkat ke titik di mana kita berpotensi membuang pembungkus sekarang. Mudah-mudahan itu akan mencegah masalah seperti ini di masa depan.

@TimOliver Terima kasih atas balasan Anda! Saya benar-benar mengerti Anda

Hai @zhanngao0086! Maaf atas keterlambatannya!

Saya akhirnya punya waktu luang untuk memeriksa apa yang sedang terjadi. Itu aneh karena bahkan pada tingkat wadah induk, safeAreaInsets adalah 0 kecuali untuk takik.

Saya pikir saya sudah memperbaikinya. Ini adalah efek samping lain dari tampilan modal iOS 13 baru. Ternyata jika Anda tidak menyetel modalPresentationStyle ke .fullScreen , pengontrol tampilan tampaknya tidak mematuhi sisipan.

Saya belum mengirimkan rilis pod baru (Server CI saya jatuh ketika saya memperbaruinya ke Catalina. ), tetapi saya menambahkan flag .fullScreen ke cabang master. Bisakah Anda mencoba menarik dari master dan melihat apakah itu berhasil untuk Anda sekarang?

Sintaks untuk menarik dari master melalui CocoaPods adalah:

pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'

Terima kasih!

@TimOliver Terima kasih banyak atas pekerjaan Anda yang luar biasa!

Hebat! Ini bekerja persis seperti yang saya harapkan! 👍

Saya juga harus mengatur cropViewController.modalPresentationStyle = .fullScreen dalam kode saya (bukan hanya memperbarui ke cabang utama). Menambahkan catatan di sini karena itu tidak jelas bagi saya

Perbaikan ini tampaknya hanya berfungsi untuk kode Swift. Adakah yang tahu mengapa itu tidak berfungsi di objektif C?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat