Apakah ada cara untuk memverifikasi apakah CGPoint
ada di dalam spesifik CGRect
.
Contohnya adalah: Saya menyeret UIImageView
dan saya ingin memverifikasi apakah titik pusatnya CGPoint
ada di dalam yang lainUIImageView
let view = ...
let point = ...
view.bounds.contains(point)
Gunakan CGRectContainsPoint()
:
bool CGRectContainsPoint(CGRect rect, CGPoint point);
Parameter
rect
Kotak untuk memeriksa.point
Intinya untuk meneliti. Mengembalikan Nilai benar jika persegi panjang tidak nol atau kosong dan titik tersebut terletak di dalam persegi panjang; jika tidak, salah.Suatu titik dipertimbangkan di dalam persegi panjang jika koordinatnya terletak di dalam persegi panjang atau pada X minimum atau tepi Y minimum.
Di Swift akan terlihat seperti ini:
Versi Swift 3:
Tautan ke dokumentasi . Harap ingat untuk memeriksa isi jika keduanya berada dalam sistem koordinat yang sama jika tidak maka diperlukan konversi ( beberapa contoh )
sumber
Poin UIViewInside: withEvent: bisa menjadi solusi yang baik. Akan mengembalikan nilai boolean yang menunjukkan apakah CGPoint yang diberikan dalam contoh UIView yang Anda gunakan. Contoh:
sumber
Dengan cepat Anda dapat melakukannya seperti ini:
"bingkai" adalah CGRect dan "titik" adalah CGPoint
sumber
Dalam tujuan c, Anda dapat menggunakan CGRectContainsPoint (yourview.frame, touchpoint)
Dalam 3 yourview.frame.contains (touchpoint) cepat
sumber
Ini sangat sederhana, Anda dapat menggunakan metode berikut untuk melakukan pekerjaan semacam ini: -
Dalam kasus Anda, Anda dapat melewatkan imagView.center sebagai titik dan imagView.frame lain sebagai metode in rect.
Anda juga dapat menggunakan metode ini di bawah Metode UITouch :
sumber
sumber
Saya mulai belajar cara membuat kode dengan Swift dan mencoba menyelesaikannya juga, inilah yang saya dapatkan di taman bermain Swift:
Mencetak di dalam
sumber