原创 Objective-C中nullable、__nullable、_Nullable、_Nonnull的用法

在 Swift 中,我們會使用 ? 和 ! 去顯式聲明一個對象或者方法的參數是optional 還是 non-optional ,而在 Objective-C 中則沒有這一區分,這樣就會帶來一個問題:在 Swift 與Objective-

原创 iOS 調整UIPageControl圓點大小

創建一個類,繼承UIPageControl,重寫setCurrentPage方法,可設置圓點大小,用這個類來初始化pageControl使用即可。 #import <UIKit/UIKit.h> @interface MyPageCo

原创 iOS 怎麼給UITextView添加佔位符文字

起初,方法是在cell.contentView上加一個label,在UITextView開始編輯時在代理方法裏隱藏label,結束編輯時如果UITextView沒文字,再把label顯示出來。相比如下方法顯得麻煩。 下面是通過runtim

原创 iOS 怎麼在多次presentViewController後直接返回到最底層界面

presentViewController是經常會用到的展現ViewController的方式,而顯示和去除presentViewController也是很簡單的,主要是下面兩個方法: - (void)presentViewCon

原创 iOS 如何獲取手機型號、系統版本、電池電量

1、手機型號:iPhone 6 NSString* phoneModel = [self iphoneType]; //方法在下面 2、手機系統版本:9.1 NSString* phoneVersion = [[UIDevice cur

原创 iOS 關於網絡數據解析小數位精度丟失問題的修正

近日,項目中出現了後臺返回數據,特別是價格時,小數位會出現很多9999的現象,而在谷歌瀏覽器測試後臺返回數據時,正常顯示是隻有2位,後臺也說只返給了2位小數給我,百思不得其解,只能認爲是開發環境不同造成的問題。之前的解決方案是利用 %.2

原创 iOS 關於MBProgressHUD的使用 自定義動畫

MBProgressHUD的常用屬性和用法: /* 要將一個MBProgressHUD顯示出來,1,創建對象;2,將HUD添加到view上;3,調用show方法 隱藏,

原创 iOS 環信apns離線推送相關deviceToken和證書等問題

用過環信的知道,環信在APP掛在後臺超過3分鐘或者被kill之後,是不會收到消息了的,如果想要能繼續接受消息,需要註冊apns離線推送。在調試期間遇到一些棘手問題,現總結如下: 先附上環信社區配置apns的問題詳解:http://www.

原创 iOS 通過代碼修改AutoLayout的約束連線,來實現調整view的位置

使用AutoLayout佈局的時候,如果還需要在代碼裏面修改frame,這時候你會發現直接修改frame是不起作用的,所以想要根據數據變化來調整特定的view的位置怎麼也調整不了! 其實,可以通過修改約束,把需要修改的約束連線在xib裏面

原创 iOS 常用正則表達式(檢驗手機號、身份證等的有效性)

有用的東西就要自己存下來。。。 我們先對正則表達式語法做一個簡單的說明,這樣方便理解。網上關於正則的資料很多很多,我在這裏只做下整理 /** * 正則表達式簡單說明 * 語法: . 匹配除換行符以外的任意字符 \

原创 iOS 如何獲取手機外網IP地址(附內網IP地址)

查找了一些方法,最初以爲拿到的就是手機對外的公網地址,其實只是本地IP地址。下面把獲取手機內外網IP地址的方法總結下: 一、獲取手機本地靜態IP地址:(局域網) 方法1: 首先導入頭文件: //IP地址需求庫 #import <sys/

原创 iOS 手機網絡類型和運營商怎麼獲取

Reachability 只能判斷是WiFi還是蜂窩網絡,無法獲取到具體的類型是3G還是4G,現在獲取手機網絡類型可以直接使用蘋果原生API了: 首先我們導入庫  CoreTelephony.framework 然後在我們的類中加入

原创 iOS 程序未啓動和在前臺、後臺接收到推送消息的處理方法

    本文主要說的是接收到推送消息的處理,至於集成比較簡單,不再本文探討範圍之內,網上也有很多文章。在此假設你已經成功集成了某個第三方推送,那麼接收到消息怎麼處理,是本文所要講述的。好了,各位看官,走起!   首先接收到推送消息的時候

原创 微信小程序web-view與H5交互:判斷H5是否在小程序環境

在微信小程序內是可以通過web-view加載H5,以便一套H5代碼可供多端使用,但很多時候不同端對H5的交互不一樣,這就要求在H5內做出判斷,識別此時調用H5的是什麼客戶端。 微信官方目前給出了三種方法在網頁內判斷小程序環境: //1.

原创 iOS9 WKWebView清除緩存方法

自iOS8以來新出的WKWebView,大大優化了UIWebView的內存飆升問題,使得開發者迫不及待的用它來替換掉UIWebView,iOS8剛出,作者我就趕緊把項目裏的webView都替換成WKWebView了,然而....當我替換完