原创 改變UINavigationBar導航條標題顏色和字體

   UINavigationController 可以 改變UINavigationBar導航條標題顏色和字體     [self.navigationController.navigationBar setTitleTextAtt

原创 單例宏的書寫

單例模式是iOS開發中常見的設計模式,怎麼樣快速創建單例宏呢?方法如下: //------------------------------------------------------------- //@name 單例宏 //---

原创 iOS8區域定位CLVisit的瞭解

在很多應用,使用位置定位來判斷用戶是不是在某個期望的地理位置。概念上說,你會將這個行爲想成名詞“現場”或者是“訪問”而不是原生的GPS定位。 略一段。。 在iOS8中,大蘋果爲我們解決此類問題提供了CLVisit,一個新的後臺定位監

原创 iOS開發過程中使用一些常用的宏

iOS開發過程中使用一些常用的宏可以提高開發效率,提高代碼的重用性;將這些宏放到一個頭文件裏然後再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便。 [cpp] view

原创 下拉刷新的邏輯要點

下拉刷新:清空本地所有數據,加載第一頁。 上拉加載:使用當前頁碼加載數據。下拉刷新和上拉加載加載網絡數據成功後的共同邏輯:加載成功後通過獲取元素的個數和獲取到的數據總條數對比,如果還有數據,那麼頁碼變量要加一。

原创 iOS APP貼牌必備

注意注意注意:重命名項目時,記得先備份好一份 APP貼牌:簡單的說就是複製一個項目,更換UI或者一些接口就可以了,下面我將介紹一下最開始的項目配置: 1:在xcode修改項目名(點擊按return鍵輸入項目名字),點擊Rename 第二

原创 Xcode上傳低版本應用到AppStore報ERROR ITMS-90725的錯誤

最近用xcode 8.3 上傳到appstore 的時候,報了一個錯誤: ERROR ITMS-90725:"SDK Version Issue. This app was built with the iOS '10.0' SDK...

原创 storyBoard編程通過performSegueWithIdentifier傳參數

在跳轉  控制器的 類裏面寫此方法 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{         if ([segue.identifier

原创 UIAlertController代替UIAlertView

 iOS9以後創建UIAlertView時會出現警告,蘋果對UIAlertView進行了優化,添加了UIAlertController,下面是UIAlertController的實現方法: 1、創建一個UIAlertController 

原创 你真的瞭解iOS代理設計模式嗎?

在項目中我們經常會用到代理的設計模式,這是iOS中一種消息傳遞的方式,也可以通過這種方式來傳遞一些參數。這篇文章會涵蓋代理的使用技巧和原理,以及代理的內存管理等方面的知識。我會通過這些方面的知識,帶大家真正領略代理的奧妙。寫的有點多,

原创 iOS將UIImage設置爲圓角

UIImage+wiRoundedRectImage.h #import <UIKit/UIKit.h> @interface UIImage (wiRoundedRectImage) + (id)createRoundedRe

原创 MJRefresh詳解

下拉刷新01-默認 self.tableView.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ // 進入刷新狀態後會自動調用這個block }]; 或

原创 解決每次運行Xcode都需要輸入密碼問題

剛買的電腦,安裝xcode後,每次運行模擬器都會出現讓輸入管理員密碼的問題,上網搜了很多解決辦法,最後整理了一下: 1、打開終端 2、輸入DevToolsSecurity --status 上面的指令時查看開發者狀態的,如果是 Devel

原创 xcode快速創建代碼模版

創建代碼模版可以提高編程效率,本文以懶加載爲例: 並將代碼拖到右側代碼快捷鍵區域中: 這時,最下面的一個代碼快捷方式就是我們剛拖進去的代碼 ,雙擊打開後點擊Edit,如圖所示: 點擊Edit後會出現下面的的界面: Title:指的

原创 UIImage圖片處理(更改顏色,修改透明度,縮小,合併圖片)

//遍歷圖片像素,更改圖片顏色 void ProviderReleaseData (void *info, const void *data, size_t size) {     free((void*)data); }