2012-12-12 57 views
0

我在市場上有一個很好的徹底的示例/教程鏈接或演示程序化創建和重繪/調整旋轉視圖嵌套平鋪視圖。這意味着根視圖需要在旋轉時旋轉,並觸發所有嵌套的視圖以旋轉和調整大小。例如,假設你有一個四十個矩形視圖平鋪的視圖,Id想要旋轉一個iphone/ipad並且有四十個嵌套視圖也旋轉(不難),但更重要的是調整大小和移動。一個四乘十的網格可能會變爲五乘八。ios以編程方式重繪嵌套視圖tiled

我可以通過編程來實現這個功能,但是我發現x/y邊界等都是不成立的。

請不要評論「但只是使用故事板」...

謝謝!

回答

2

我發現通常可以按照您的預期工作。事情要考慮在回調您使用回暖旋轉,有3個,它們服務於一個稍微不同的目的

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration

這可能是你要使用的一個,在這一點上,當你查詢self.view.frame(或任何你用來獲得超級幀),它將返回幀旋轉完成後的值。它也考慮到了自動調整大小,並且它在之前給出了這個發生了旋轉(即沒有可見的效果)。用它來計算視圖的所有新位置和大小並設置它們。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration

這告訴你的旋轉將要發生,但仍返回框架當前的方向,對隱藏/顯示有益的意見,但不能用於計算新的位置!

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

這就是所謂的一次轉動完成後,返回新的大小和框架,但如果你試圖重新定位的觀點在這裏,他們看起來好像他們是跳來跳去轉動完成後。

我還建議玩自動調整大小,因爲這可能是一個真正的婊子。我有時會在代碼中設置自動調整大小,並在xib尖括號中確保沒有有趣的業務!

如果矩形嵌套在他們應該自動旋轉視圖控制器(你可能知道,只是覺得我添加它的情況下)

+0

真棒謝謝。我開始脫離軌道。我發現的一部分問題是有一個iOS 6的構建目標,由於棄用而沒有激發我所有的方法。 – HCdev

相關問題