2010-08-03 40 views
8

Vì vậy, tôi có số này UITableView. Nó nằm trong một ứng dụng iPad. Một số ô có nút phụ kiện ở bên phải (mũi tên tròn nhỏ). Khi được nhấn, tôi trình bày một cửa sổ bật lên nơi người dùng có thể chọn các hành động liên quan đến ô bảng mà họ đã chạm vào. Cho đến nay, không có gì trong số này là khó khăn hoặc đặc biệt.Nhận tọa độ màn hình của một UITableViewCell nhất định?

Nhưng chế độ xem cửa sổ bật lên muốn biết vị trí bắt nguồn từ đó, để nó có thể vẽ mũi tên nhỏ trỏ đến đó. Tôi tự nhiên sẽ thích mũi tên đó để chỉ vào ô bảng mà cửa sổ liên quan đến.

Làm cách nào để tìm ra tọa độ hiện tại trên màn hình cho một ô nhất định trong bảng, vì tôi biết đó là indexPath?

Trả lời

28

Sử dụng phương pháp UITableView -rectForRowAtIndexPath:. Lưu ý rằng trả về một rect trong hệ tọa độ của khung nhìn - nếu bạn cần rect tương đối với view khác trong cùng một cửa sổ, sử dụng phương thức UIView -convertRect:fromView:.

+4

Chúa ơi, thật đơn giản! Tôi phải đã tìm kiếm ở tất cả các địa điểm sai. –

+1

Cẩn thận với điều đó, nếu UITableCell tắt màn hình bên dưới, nó sẽ cho bạn toạ độ y cho nó trong khung nhìn bảng chứ không phải tọa độ màn hình thực tế. Nếu không phương pháp này hoạt động tuyệt vời! – TChadwick

+0

Phương pháp này chỉ cung cấp cho bạn bù trừ từ scrollview, tableview chứa. Vì vậy, bạn sẽ nhận được kích thước phù hợp nhưng nếu tableView của bạn không nằm ở đầu chế độ xem của bạn, nó sẽ không tính toán điều này. Sự kiện nếu bạn cuộn xuống, phương pháp này sẽ không tôn trọng điều đó. –

Các vấn đề liên quan