 <p>Apart from rectForRowAtIndexPath you need to consider the scrolling.</p> <p>Try this code:</p> <pre><code> // Get the cell rect and adjust it to consider scroll offset CGRect cellRect = [tableView rectForRowAtIndexPath:indexPath]; cellRect = CGRectOffset(cellRect, -tableView.contentOffset.x, -tableView.contentOffset.y); </code></pre>