Marcus’ Blog

馬克斯的碎念與筆記

Category: iOS 開發 (page 2 of 7)

Contribution to open source community

剛開始工作的時候總覺得,可以做出一個很多人使用的Third party library 真的很酷,如果有一天自己也可以做出一些,那會是一件多棒的事。

其實,2016 年的我曾期許2017 年的自己,可以嘗試對開源社群做出貢獻,無奈2017 年的我,對於自己不夠有信心也不夠積極,始終沒做出什麼來 😅

這篇文章將會分享我對開源社群的貢獻過程,以及我的小小心得 🤘

Continue reading

iOS – Custom Animation Transition

這次會有機會碰到交互動畫,是因為專案當中,有個Presented 的畫面,左上角做了一個Dismissed 的按鈕,但他卻是一般Push 的back 按鈕,使用上UX 真的很不舒服,因此嘗試做了Presented 的動畫改變,並增加Gesture 來增加UX。

靈感來源是Facebook,下圖是Facebook 在Presented 自己的WebView 時所實作的交互動畫:

這次範例的專案完整的上傳到GitHub,若您對本文有興趣,歡迎先把專案下載下來邊讀邊玩。

Continue reading

iOS Background fetch

Background fetch

在iOS 系統當中,只有少數幾個狀況可以允許你的app 在背景做事:

  1. Audio and AirPlay
  2. Location updates
  3. Voice over IP
  4. Newsstand downloads
  5. External accessory communication
  6. Uses Bluetooth LE accessories
  7. Acts as a Bluetooth LE accessory
  8. Background fetch
  9. Remote notifications

其中,Background fetch 這個選擇,是希望你的app 在沒有使用的狀態下,也有機會可以更新資料,讓使用者下次回到你的app 時,可以看到最新的資料。

更詳細的介紹可以參考WWDC 2013 – Session 204

Continue reading

擷取UINavigationController swipe back 取消事件

情境

有兩個ViewController,分別為A 跟B:

A – 一個NavigationController 的rootViewController,擁有TabBar,但非使用TabBarController

B – 一個一般的UIViewController

當我們從A push 到B 時,TabBar 是不會消失的,一般來說,若使用UITabBarController,可以透過修改UIViewController 的property hidesBottomBarWhenPushed 來隱藏TabBar。

但公司的專案當中,當時因為一些歷史包袱並沒有使用UITabBarController,因此必須實作UINavigationControllerDelegate當中的navigationController:willShowViewController:animated:方法,藉此觀察目前的ViewControllers stack 的狀況來決定是否要隱藏TabBar。

Continue reading

iOS 10 UIWebViewDelegate 針對URL 額外的處理踩到的坑

在公司的專案當中,有一些透過Web JavaScript 操作 objc 程式碼的操作在升級為iOS 10 之後就突然不work 了,稍微找了一下發現,原本實作用於bridge 兩者的delegate method webView:shouldStartLoadWithRequest:navigationType: 所接收到的NSURLRequest當中的URL,在 iOS 10 以前的版本看起來會像是(其中忽略了URL encode):

Continue reading

Older posts Newer posts

© 2021 Marcus’ Blog

Theme by Anders NorenUp ↑