2016-06-11 22 views
5

İçinde bir grup hücre bulunan bir tablo görünümü var. Bir hücrenin çerçevesini süper görünümün koordinat alanında değil, tablo görünümünün koordinat alanında görmek istiyorum.Tablo görünümü hücresinin çerçevesini tablo görünümünün koordinat alanında nasıl alabilirim?

Bir resim muhtemelen bu daha iyi

enter image description here

kırmızı dikdörtgen bakın açıklarsın? Masa hücresinin çerçevesi budur. Ve mavi dikdörtgen, tablo görünümünün çerçevesidir. Mavi dikdörtgene göre kırmızı dikdörtgeni almak istiyorum.

UITableViewCell'un frame özelliğini kullanmayı denedim. Ama işe yaramıyor çünkü dönüyor (0, 0, 320, 44). Y değeri sıfır olmamalıdır, çünkü belli ki, hücre ekranın üstünde değildir.

enter image description here

tablo görünümü şu iken: Bir tablo hücresinin Superview, görünüşe göre tablo görünümü şu UITableViewWrapperView çünkü

görünümü hiyerarşi göre, bu amaçlanan davranış olduğunu

enter image description here

Yani tablo görünümünde çerçevesini temsil bana bir CGRect alabileceği bir yöntem/özellik vardır Tablo görünümünde koordinat alanında hücre?

CGRect'u bir koordinat boşluğuna dönüştüren bir işlev olduğunu düşünüyorum. Ama adını ve nasıl kullanılacağını unuttum. Bu durumda yardımcı olup olmadığını bilmiyorum.

cevap

12

let rectOfCell= tableView.rectForRowAtIndexPath(indexPath) 
let rectOfCellInSuperview = tableView.convertRect(rectOfCell, toView: tableView.superview) 
+0

'rectOfCellInTableView' nedir kodunun altına kullanın? RectOfCell'i mi kastettin? – Sweeper

+0

Bu benim için çalışmıyor. 'ConvertRect' yöntemi, bölüm başlıklarının yüksekliğini dikkate almıyor gibi görünüyor. Rect, tablo hücresinden biraz daha yüksektir. yani bir kaç ofseti vardır. – Sweeper

+0

Sonra bölüm için rect almak ve hücre y konumunu almak için hücrenin y + (heightOfCell) (indexPath.row) ekleyin. –

İlgili konular