原创 iOS --- 獲取UIView的模糊效果截圖

我們常見到一些APP中對指定UIView區域進行模糊處理的效果。實現此效果,需要用到UIView截圖和UIImage的ImageEffects擴展。 添加UIView aView = [[UIView alloc] initWit

原创 iOS --- OpenGLES之着色器(shader)的編譯、鏈接及使用

在上一篇博客 iOS — OpenGLES之着色器(shader)語法介紹 中,簡要介紹了OpenGLES的着色器shader的基本語法,以及Vertex Shader和Fragment Shader的差異。本文中,將簡要介紹着色

原创 iOS --- 多線程之GCD

GCD(Grand Central Dispatch)是一套低層級的C語言API,通過GCD,可向隊列中添加一段代碼段(block或C函數指針),而不需要直接和線程打交道。GCD在後端管理着一個線程池,不僅決定着代碼塊在哪個線程中

原创 iOS --- OpenGLES之着色器(shader)語法介紹

上一篇博客 iOS — OpenGLES之初步認識 中主要介紹了OpenGLES在iOS中的簡單使用,包括創建EAGLContext,設置CAEAGLLayer屬性,使用renderbuffer和framebuffer等。這一次,

原创 iOS --- 多線程之NSOperation

NSOperation基於GCD封裝實現的,比GCD稍慢,可設定各個操作之間的依賴關係及優先級等。相對於GCD而言,NSOperation主要會涉及到使用NSOperationQueue來調度和管理各個NSOperation對象及

原创 iOS --- OpenGLES之頂點緩存對象VBO

在上一篇博客 iOS — OpenGLES之簡單的圖形繪製 中,使用OpenGLES繪製了基本的三角形和矩形。在矩形繪製過程中,使用到了VBO,即Vertex Buffer Object,可視爲GPU中的一塊緩衝區buffer,用

原创 iOS --- CoreGraphics中三種繪圖context切換方式的區別

CoreGraphics的使用過程中,經常會遇到繪圖context切換的操作,一般使用用到CGContextSaveGState/CGContextRestoreGState,UIGraphicsPushContext/UIGra

原创 iOS --- OpenGLES之初步認識

iOS上繪製圖形的方式很多,UIKit,CoreGraphics,SpriteKit,OpenGL ES,Metal等。OpenGL ES是一套非常底層但使用非常廣泛的C語言API,專爲移動設備定製,可在不同的手機系統或瀏覽器上使

原创 iOS --- 如何隱藏APP的statusBar

如果需要全局隱藏APP的statusBar,需要做到如下兩點: 1, 在APPDelegate中,設置application.statusBarHidden爲YES,即 [[UIApplication sharedApplica

原创 iOS --- 通過openURL實現APP之間跳轉並傳遞數據

在博客iOS — 通過UIApplication的openURL來實現APP之間的相互跳轉中, 介紹瞭如何實現iOS APP之間的相互跳轉, 使用的就是UIApplication的openURL:方法. 那麼, 如果想要在ope

原创 C++ --- 常見容器之vector

vector是C++標準模板庫中的部分內容,它是一個多功能的,能夠操作多種數據結構和算法的模板類和函數庫。vector之所以被認爲是一個容器,是因爲它能夠像容器一樣存放各種類型的對象,簡單地說vector是一個能夠存放任意類型的動

原创 iOS --- 使用runtime解決3D Touch導致UIImagePicker崩潰的問題

UIImagePickerController是iOS中自帶的系統相冊選擇器, 使用起來非常簡便. UIImagePickerController UIImagePickerController *imagePickerContr

原创 iOS --- 兩個NSIndexPath對象的正確比較方式

在UITableView和UICollectionView中, 經常會遇到比較兩個NSIndexPath對象是否相同的情況. 錯誤寫法 if (currentIndexPath != lastIndexPath) { //

原创 iOS --- OpenGLES之簡單的圖形繪製

在上一篇博客 iOS — OpenGLES之着色器(shader)的編譯、鏈接及使用 中,簡要介紹着色器(shader)的編譯、鏈接及使用。本文將在之前一系列OpenGLES相關博客的基礎上,使用OpenGLES繪製基本的圖形。

原创 iOS --- 根據字符串的實際大小來計算UILabel的size

根據字符串大小來計算UILabel的size 很多UILabel的使用場景下,需要根據字符串大小來計算UILabel的大小,以保證UILabel的美觀: 使用NSString的方法: - (CGSize)sizeWithFont