發表文章

目前顯示的是 十二月, 2017的文章

[Objective-C] 如何讓 iPhone 也能顯示出跟 iPad 一樣的 Popover 視窗

圖片
最近有人問我這支 App (空氣品質監測 https://goo.gl/gf2cBr),右上按鈕按下去後會跳出小視窗是如何做出來的,其實就是使用了 Popover視窗。


Popover 視窗主要用在螢幕較大的 iOS 裝置上,例如: iPad (下圖)。讓 iOS裝置透過 Popover 視窗可以讓資訊呈現以及操作介面看起來更精緻美觀。但是現在 iPhone 手機螢幕也做的越來越大,所以現在 iPhone 也可以使用 Popover 視窗囉。


步驟ㄧ:在 Storyboard 上放上 ViewController2,ViewController1 右上設置一個 UIButton,並拉線到 ViewController2。



步驟二:Action segue 選擇 Present As Popover。



步驟三:設定 ViewController2 要顯示的寬跟高。


步驟四:加上 UIPopoverPresentationControllerDelegate。

步驟五:使用 segue 方法跟 Delegate 裡的 adaptivePresentationStyleForPresentationController 方法,並加入以下程式碼。

完成: 運行後效果如下。


- > Sampe Code: https://www.dropbox.com/s/46px6acx0gzrh8w/iPhonePopover.zip?dl=0

Apple 的 App 審核人員將在 12/23~12/27 要放假囉

圖片
Apple 的 App 審核人員將在 12/23~12/27 要放假囉,App 還沒送審的還有要更新的,要趕緊這幾天送審囉。




[Objective-C] 解決點擊 UITextField 輸入框後被鍵盤升起擋住

圖片
有時候因為介面設計的關係,點擊 UITextField 輸入框後就會被升起來的鍵盤擋住。
最簡單的方法:1. 在 viewDidLoad 註冊兩個 NotificationCenter 來監控鍵盤升起來以及收起來。 UIKeyboardWillShowNotification 鍵盤將升起來。UIKeyboardWillHideNotification 鍵盤將收起來。

2.  鍵盤升起來的時候會執行 keyboardWillShow 方法。 keyboardFram:用 UIKeyboardFrameEndUserInfoKey 取得鍵盤的尺寸。keyboardHeight:取的鍵盤的高。keyboardDuration:用 UIKeyboardAnimationDurationUserInfoKey 取得鍵盤上升的動畫時間。使用 UIView 動畫,動畫時間帶入 keyboardDuration,並將 view 的 y 座標設定為負的鍵盤高度,這樣 view 就會跟著鍵盤升起來的時候也跟著往上提高。

3. 鍵盤收起來的時候會執行 keyboardWillHide 方法。 使用 UIView 動畫,動畫時間帶入 keyboardDuration,並將 view 的 y 座標設定 0

[Objective-C] 點擊 UITextFiled 後,收起鍵盤的二個常用方式

圖片
1. 第一個方式就是最常見到的點擊鍵盤 return 鍵盤就會收起來。
先加入 UITextFieldDelegate。 UITextField 設定 delegate。 使用 delegate 方法。

2. 第二個方法就是隨意點擊 view 任何地方鍵盤就會收起來。
在 view 加入點擊手勢 UITapGestureRecognizer。 點擊 view 任意地方就ㄏ呼叫 dimissKeyboard 方法。

-> 接下來可以繼續跟著這篇做:解決點擊 UITextField 輸入框後被鍵盤升起擋住
https://appotakuchung.blogspot.tw/2017/12/iosobjective-c-uitextfield.html



如何讓 APP 連線 HTTP 非加密的網路傳輸

圖片
Apple 在 iOS9之後對資訊安全這塊非常重視,在一般預設情況下必須使用HTTPS 具有加密傳輸的網路通訊方式,才可以連線到所指定的網址或主機。

如果您的 APP 目前還是只能連線到 HTTP 的網址或主機的話,只要在 info.plist 裡面加入 ATS (App Transport Security Settings) 設定就可以囉。


在 iOS9 後 Apple 建議設定:1. 在 info.plist 裡新增 ATS ->
2. 在 ATS 下添加 Allow Arbitrary Loads 設為 YES。




在 iOS 10 後 Apple 建議設定:1. 在 info.plist 裡新增 ATS -> 
2. 在 ATS 下添加 Exception Domains -> 
3. 添加 網域名稱 -> 
4. 添加設定:NSExceptionAllowsInsecureHTTPLoads 允許不安全連線,
NSIncludesSubdomains 網域名稱下的主機都允許連線。



[Swift] 將坐標系統 TWD97 (二度分帶) 轉成 WGS84 (經緯度)

圖片
最近在解析資料,遇到資料提供的座標為 TWD97 二度分帶座標,發現要轉成經緯度才有辦法使用在 iOS 的地圖上,所以花了點時間上網找公式才完成的,有需要用到的使用者可以把它寫成一個方法帶 X,Y 座標進去就可以使用囉。


註:如果您是用 Objective-C 語言就只要把 var 都改成 Double 就好了。

-> Sample Code:
https://www.dropbox.com/sh/wyce6lkjfsbo55d/AADnI0ONdCQxXwxd1wmZuMHKa?dl=0



Facebook 臉書輸入「你行的」會出現新特效

圖片
Facebook 臉書自從新增了「恭喜」動畫特效之後,現在不定期都會推出新的動畫特效,今天在 Facebook 臉書留言框或貼文輸入「你行的」,螢幕上就會出現 M 字型彈跳的「讚」圖示。還沒嘗試過的使用者趕快去試試看吧!



[Swift] 判斷多個條件同時成立,可用「 , 」取代「 && 」

圖片
使用 if 或 while 判斷多個條件有沒有同時成立時,通常都是用「 && 」,但是如果一次判斷很多組就會顯得非常的攏長,Swift 語言可以改用逗號「 , 」取代「 && 」囉(如下圖)。

Apple App Store 加速上架審查

圖片
開發者們有時候基於某些特殊原因需要縮短審查時間,只要填寫資料就可以加速上架審查,不過 Apple 審查機制裡面也有提到 Apple 並不保證能夠順利提早完成審查。


1. 首先到 https://developer.apple.com,登入 Apple Developer 帳號,點選上方列 Support。
2. 點選聯繫我們 Contact Us。

3. 點選應用程序審查 App Review。
4. 選擇請求加速的應用程序審查 request an expedited app review。

5. 填寫聯繫訊息,Name、Email、Organization 帶入的都是不可修改的基本資訊。使用者只要填入 Phone 電話號碼可以讓蘋果人員可以聯絡到您就可以了。

6. 填寫您的 App 名稱。
7. 填寫您的 Apple ID。( iTunes Connect 我的 App,選擇您要審查的 App,App 資訊裡)。
8. 您的 App 是多個可連動的組合,可以在這裡以 "," 分隔 Apple ID 一起填寫。可省略。
9. 選擇您 App 要上架的平台 (目前有 iOS、macOS、tvOS)。

10. 選擇您要加速審查的原因。 (目前有嚴重 Bugs 修復、有時間限制的活動、其他)
11. 說明您要加速審查的原因。
12. 送出。