2010-08-03 13 views
8

Yani, ben bu UITableView var. Bir iPad uygulamasında. Bazı hücrelerin sağında bir aksesuar düğmesi vardır (küçük yuvarlak ok). Bu tuşa basıldığında, kullanıcının dokundukları tablo hücresiyle ilgili eylemleri seçebileceği bir popover görünümünü sunarım. Şimdiye kadar, bunun hiçbiri zor ya da istisna değildir.Belirli bir UITableViewCell'in ekran koordinatlarını alın?

Ancak popover görünümü nereden kaynaklandığını bilmek istiyor, böylece oradaki küçük oku çizebilir. Doğal olarak bu okun popover ile ilgili tablo hücresine işaret etmesini isterdim.

Tablodaki belirli bir hücre için geçerli olan ekran koordinatlarını, indexPath olduğunu bildiğimden nasıl öğrenebilirim?

cevap

28

UITableView yöntemini -rectForRowAtIndexPath: kullanın. Tablo görünümündeki koordinat sisteminde bir rect döndürdüğüne dikkat edin; aynı pencerede başka bir görünüme göre rect'e ihtiyacınız varsa, -convertRect:fromView: UIView yöntemini kullanın.

+4

Tanrım, çok basit! Bütün yanlış yerlere bakmış olmalıyım. –

+1

UITableCell aşağıdaki ekran kapalıysa, bununla ilgili olarak, ekranın gerçek koordinatını değil, tablo görünümünde y koordinatını verecektir. Aksi halde bu yöntem harika çalışır! – TChadwick

+0

Bu yöntemde, yalnızca tablo görünümünde kaydırma görünümünden uzaklık elde edilir. Böylece, doğru boyutu elde edeceksiniz, ancak tablonuzView görünümünüzün en üstünde yer almıyorsa, bunu hesaplamayacaktır. Olay aşağı kaydırırsanız, bu yöntem buna uymaz. –