2012-04-04 67 views
0

我有一個使用MonoTouch創建的基本iPad應用程序。我有一個單一的視圖控制器。在代碼中添加MonoTouch旋轉按鈕

在代碼中我加入一個按鈕是這樣的:

  _button = UIButton.FromType(UIButtonType.RoundedRect); 
     _button.Frame = new Rectangle((int)location.X - 50, (int)location.Y - 50, 100, 100); 
     _button.SetTitle("A", UIControlState.Normal); 

     _viewController.View.AddSubview(_button); 

這項工作極大當iPad處於縱向模式。如果我在添加按鈕之前旋轉屏幕,然後嘗試添加按鈕,則會旋轉它。

例如,如果方向當前是LandscapeLeft(左側的硬件按鈕),那麼當我添加上述按鈕時,按鈕上的字母A位於其右側,就好像按鈕向右旋轉90度一樣。

如何在代碼中添加一個按鈕,使其始終正確定向?

+0

我想我找到了MonoTouch的一個bug。 我決定玩這個更多,發現如果我使按鈕的框架非對稱,它可以正常工作。我只能猜測,當Frame是對稱的時,MonoTouch無法弄清楚什麼是向上和向下的,因此定向的東西不能正常工作。 如果我將尺寸更改爲100 x 80而不是100 x 100,則一切正常,並且添加的按鈕與屏幕正確定位。 – user856232 2012-04-04 03:44:33

+1

一些正確和不正確結果的截圖會非常有幫助。 – 2012-04-04 05:55:12

+0

請填寫http://bugzilla.xamarin.com上的錯誤報告,幷包含一個小型自包含的測試用例,以便我們重現此問題。謝謝! – poupou 2012-04-04 13:12:05

回答

0

原來是因爲我將按鈕添加到View.Window(出於其他原因)。我已經改變它添加到視圖的按鈕,現在它的作品。

誤報。每天都學到一些東西....

0

也許這可以幫助你:

UIButton button = new UIButton(); 
... 

button.Transform = CGAffineTransform.MakeRotation(); 

這是旋轉按鈕的功能;)

+0

謝謝你的提示。我也嘗試過,但它會旋轉,然後再旋轉。如果你看看我自己的回答,我發現問題是我將按鈕添加到視圖的窗口而不是視圖本身。我正在關注其他一些代碼。我很長一段時間的開發,但新的iOS。隨着我的學習... – user856232 2012-04-05 13:34:45