2011-06-25 128 views
0

我有一個沒有相應UIViewController的自定義UIView子類。我在我的應用程序的各個地方使用這個類。當我旋轉設備時,我需要重新定位視圖。我明白這通常用willAnimateRotationToInterfaceOrientation:duration:方法完成,但這是UIViewController類的一部分,而不是UIView。我的問題是,有沒有辦法讓我的UIView無需實現相應的UIViewController就可以重新定位自己?旋轉後UIView的位置

回答

1

您的應用程序在設備旋轉時收到來自設備的通知。你可以告訴設備開始爲你使用這些通知生成

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

然後可以使用該通知寄存器

[NSNotificationCenter默認]的addObserver:自選擇器:@selector(doThisWhenRotates :)名:的addObserver:選擇器:名稱:對象:對象:無];

然而,我不會建議。如果你真的想遵循MVC,你應該有一個控制器來處理這種視圖的東西。

但是如果您需要,您可以按照上面列出的方式進行操作。

+0

我猜UIAlertView和UIActionSheetView使用autoResizeMask設置,因爲它們相對於窗口放置。在我的情況下,我需要定位一些相對於導航條的東西,這會在旋轉時改變高度。謝謝你的幫助。 – chris