2012年9月27日 星期四

iOS學習_iOS5轉iOS6的螢幕旋轉問題_Part1

iPad更新完iOS6,Xcode也更新到4.5版,重新編譯專案後會發現以往有處理螢幕旋轉的頁面,好像都直立立地站著完全沒有要橫過來的感覺。

還沒有去很仔細地研究iOS6螢幕旋轉的控制方法,但是當務之急就是先將原本的專案恢復原狀。

原專案: 1. 各個View以shouldAutorotateToInterfaceOrientation方法來控制是否支援螢幕旋轉。
2. 從一開始的UIResponder就以UINavigationController裝進第一個UIViewController。
3. 專案雖然View很多,但是並沒有哪一個View特別指定只知原某個方向,換句話說每一個View都可以轉來轉去。

因為上面的第三點,所以改起來也相對簡單。

方法:
1. 原本在UIResponder中使用addSubview來將UINavigationController放進去。
[self.window addSubview:navigator.view];

但現在必須使用setRootViewController的方法,才能正確支援旋轉。
[self.window setRootViewController:navigator];


2. 在第一個推進UINavigationController的View加入兩個方法
-(BOOL)shouldAutorotate { return YES; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; }

如此之後再推進UINavigationController的View也都會支援螢幕旋轉,但對於各別View要分別支援不同的螢幕方向就必須要去細讀iOS6的官方文件了。

iOS小抄_更新Xcode4.5後,RUN出現file is universal (3 slices) but does not contain a(n) armv7s slice錯誤

趁著剛Demo完,就算機器出問題也有緩衝時間的這個摸悶特,很大膽的直接將測試用的iPad升級到iOS6,立刻將手邊正在開發的專案執行下去!!!非常好!!!!我得到了!!這個!!!


這也沒什麼,我想不會有人期待完全沒有問題,錯誤訊息是:

ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/cecige/Library/SDKs/ArcGIS/ArcGIS.framework/ArcGIS for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)


意思就是我所使用的ArcGIS.framework並不支援armv7s的架構。所以在第三方的SDK還沒有支援以前,可以先使用armv7來進行編譯。

方法:
1. 到Build Settings找Architectures。
2. 將Valid Architectures內的armv7s刪除。



如此,應該就可以正常編譯通過,但馬上會遇到螢幕旋轉的問題。

Android小抄_旋轉螢幕不觸發OnCreate事件

在開發Android的App時,我們會將許多初始化的內容寫在OnCreate事件中,平常測試的時候不會發生問題,但當我們稍微旋轉一下螢幕,會發現很多很多的問題都發生了。

原因是當螢幕方向改變時,Android會重新觸發OnCreate事件,會造成初始化的程式碼重新跑一次,所以有時候我們會希望旋轉螢幕時,是不是可以不要觸發OnCreate事件。

方法:

1. 於AndroidManifest.xml中,在activity的標籤內增加android:configChanges="orientation"屬性。
<activity android:name=".OlaArcGISActivity" android:label="@string/app_name" android:configChanges="orientation" android:windowSoftInputMode="adjustPan"> </activity>

2. 複寫onConfigurationChanged方法

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { Log.v("ola_log","landscape"); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ Log.v("ola_log","portrait"); } }

2012年9月18日 星期二

iOS學習_iTunes更新後,開啓xcode跳出Mobile Device Framework安裝錯誤

今天更新iTunes後,開啓xcode卻跳出Mobile Device Framework安裝錯誤的訊息,上網搜尋解決方法,google說可以手動安裝。

位置:Xcode\Contents\Resources\Packages\內,直接安裝MobileDevice。

到達上述位置的方法:
1. 於桌面按前往選擇應用程式。


2. 於xcode的圖示上按右鍵,選擇顯示套件內容。

3. 找到MobileDevice.pkg並安裝。


安裝完成後就可以順利開啓xcode了。