2010-03-11 175 views
16

我有一個TableView與自定義TableCellViews UILabels和UIButtons上。 當其中一個按鈕被錄音時我想顯示一個描述按鈕文本的「工具提示」。convertPoint:toView:似乎沒有工作

除了當我嘗試將UIButton的中心座標轉換爲作爲UIView的rootView的座標時,大多數情況都在工作。

下面是代碼:

- (void) fancyLabelButtonPressed: (UIButton *) button { 
    CGPoint btnPoint = button.center; // x=200.5 y=27.5 
    CGPoint rootViewPoint = [button convertPoint:btnPoint toView:rootView]; 
    // rootViewPoint -> x=390.5 y=197.5 
    CGPoint pointToUse = CGPointMake(btnPoint.x +20, rootViewPoint.y - 23); // Hack to get it close 
} 

如何rootViewPoint.x=390.5當我在縱向視圖!!?通過使用按鈕中的x和來自rootViewPoint的y,我接近它應該是的,但它只是一個黑客。

有沒有人看到我在做什麼錯了?或者,還有更好的方法?

回答

49

這是因爲你是從錯誤的觀點轉換點。 center屬性實際上是在按鈕的超級視圖的座標系中,無論它是什麼,所以當你將它轉換爲你的rootView時,你必須從那裏轉換它。所以:

rootViewPoint = [[button superview] convertPoint:btnPoint toView:rootView]; 

這應該給你你在找什麼。