iOS轉換坐標系

reyzhang 12年前發布 | 34K 次閱讀 iOS開發 移動開發 iOS convertView

目前在做一個ipad項目時有一個問題。我有一個UITableView的列表頁面。其中的UITableViewCell為自定義的cellcell上有一個more Button.點擊這個更多按鈕會彈出UIPopover 來顯示。我設置的popover的方向箭頭是指向上,也就是popover的view在下方顯示。一切看起來都很不錯,但我在點擊最底部的cell上的more Button彈出popover后,顯示的popover上的view不完整,部分內容被遮住,有些功能用不了,應該算是bug的范疇。而我又不想改變popover箭頭的方向,那只能是按需更新箭頭方向,也就是說如果靠近底部的cell上的more button被按下時,顯示的popover的箭頭方向可以動態的改變,使得popoverview可以完全顯示出來。這些cell不只是最底部的cell,需要通過計算來得出這些cell上的popover的箭頭方向。這就需要我們得到當前cell所在屏幕上的坐標位置的高度是否大于popoverview的高度。如果小于說明可以顯示全部,如果大于,則需要改變popover的箭頭方向以顯示全部內容。這里問題就出現了,如果我們通過cell.button.frame 來獲取,只能是取到more buttoncell上的坐標位置。而我們要取的是more button相對于整個屏幕的坐標位置。在網上查了一下資料,在UIview中有一個轉換坐標系的函數。通過此函數可以得到cell相對于屏幕的坐標。
CGRect rect=[self.view convertView:cell.frame fromView:self.tableView.frame];
NSLog(@"%@",NSStringFromCGRect(rect));
</span>

 本文由用戶 reyzhang 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!