2013-03-23 94 views
1

我有以下設置。我有一個叫做parentViewUIView,它擁有一個叫做childViewUIViewparentView可以使用一些需要在parentView上的觸摸手勢進行旋轉和調整大小。 childView在drawRect方法中有一些繪圖代碼,在parentView被轉換時需要更新。防止子視圖在其超級視圖變換時轉換

我注意到當我轉換parentView(縮放或旋轉)時,childView也會自動轉換。問題在於,雖然我確實希望在childView上啓動旋轉變換,但我不希望它變大,我寧願執行它的繪圖代碼。

所以我的問題是,處理這種情況的好方法是什麼?我注意到,在parentView轉換後,我在childView上調用「setNeedsDisplay」時,它不會被執行。

回答

1

我必須將旋轉應用於parentView,然後設置parentViewchildView的邊界屬性來調整它的大小。然後,我能夠成功地重繪drawRect中的childView。底線是,雖然我認爲如果你對孩子的超級觀點進行了改造,我認爲你不得不在它的子視圖中使用它。我試圖單獨設置轉換,並且轉換的所有時間都被搞砸了。布倫特的上述情況在某些情況下也可能派上用場。

2

不要變換父視圖;轉換孩子觀點的同胞。

換句話說,您的當前設置如下:

transformedView 
    childView 

相反,這樣做:

parentView 
    transformedView 
    childView 

這樣的轉變會不會影響孩子。

+0

這是一個好主意,但在我的情況下,它涉及到父視圖和所有子視圖之間的旋轉,所以在完成之後,如果我嘗試爲任何子視圖設置新變換,它會變得混亂。 – 2013-03-25 23:25:18

+0

但是,如果我想實現像旋轉小木屋一樣的旋轉但仍保持垂直直線的東西? – Mrug 2017-08-03 08:00:06