2010-01-30 32 views
2

我有一個UIView在一個UIView在一個UIView包含幾個按鈕的.xib。如果我將該UIView從viewWillAppear內移動了幾個像素,則這些按鈕都會停止響應水龍頭。移動包含UIButtons的UIView使這些按鈕停止響應水龍頭

下面是我使用調整的UIScrollView和換檔按鈕下的代碼:

// adjust the view height to accomodate the resized label 
    scrollView.contentSize = CGSizeMake(320, 367 + expectedLabelSize.height - originalLabelSize.height); 

    // Adjust the location of buttons 
    CGRect buttonsBounds = buttons.bounds; 
    buttonsBounds.origin.y -= expectedLabelSize.height - originalLabelSize.height; //XX 
    buttons.bounds = buttonsBounds; 

如果我註釋掉線標記XX,按鈕工作得很好,但在錯誤的地方課程。

如果我嘗試各種數量的像素(用硬編碼值替換expectedLabelSize.height - originalLabelSize.height),我會得到有趣的結果。 10個像素工作正常。 50像素導致我的頂部按鈕工作正常,但我的底部一個失敗。 100個像素,兩個按鈕均失敗。 (-50)像素會導致底部按鈕正常工作,但頂部會失敗。

任何想法可能會導致這個問題?我是否需要通知按鈕,他們的父視圖已移動?

回答

2

問題是我應該使用buttons.frame而不是buttons.bounds。使用框架來解決問題。

1

我建議給父UIView一個背景顏色並將按鈕樣式設置爲Rounded。這樣你就可以看到屏幕上發生了什麼。 (假設你在一些圖片左右使用透明按鈕)

+0

很好的建議,這幫助我弄清楚發生了什麼事情。乾杯! – emmby