2011-01-28 38 views
0

我遇到了一個令我瘋狂的問題......我知道它一定是一個簡單的修復,但我在網上找不到任何東西(但是!可能正在尋找錯誤的地方)。子視圖中的UIView起源

我有一堆,我在視圖中放置一個循環按鈕:

//make the button smaller and position 
     CGRect buttonFrame = button.frame; 
     buttonFrame.size = CGSizeMake(41, 41); 
     buttonFrame.origin = CGPointMake(10+(43*i), 415); 
     button.frame = buttonFrame; 

這個工作很大......但現在我想將它們添加到另外的看法,它們就會消失。問題的代碼行是:

buttonFrame.origin = CGPointMake(10+(43*i), 415); 

我相信,這一定是工作過self.view的座標,而不是保存按鈕新的子視圖。我是否需要一個新的CGContext用於超級視圖。

我想是這樣的:

buttonFrame.origin = [newView CGPointMake(10+(43*i), 415)]; 

但導致各種錯誤。

謝謝你的時間!

回答

1

分配爲一個視圖的幀中的CGRect的原點的偏移,該視圖將被放置在從它的上海華。因此,如果您使用CGRect(100,100,200,200),視圖將在原點右側100像素,向南100像素(還請記住iOS視圖座標系原點在左上角),尺寸爲200x200。

你的按鈕將是415個像素的局部原點(左上角)的是上海華以下,可以把它拿出來看。

+0

非常感謝,這是顯而易見的痛苦。我需要更多的睡眠。 – 2011-01-28 16:52:31

0

buttonFrame.origin = [NewView的CGPointMake(10+(43 * i)中,415)]; - 這行代碼沒有意義,因爲CGPointMake是C函數,而不是ObjectiveC方法,因此您不能將它發佈爲對象的消息。 如果你想添加子視圖,你必須使用[newView addSuview:button];並確保你已將視圖添加到另一個視圖。