原创 最近適配ios13的一點總結

1、模擬器調試暗黑模式 打開模擬器-設置-開發者: 打開選項,即可開啓暗黑模式 2、app禁止暗黑模式 在info.plist中,增加一行key爲User Interface Style;value爲Light,這樣你的app就

原创 H5文本輸入框與移動端鍵盤事件

HTML中的輸入框主要有兩種和 首先介紹一下二者的區別: <input>標籤:單行輸入框,不會換行,無論尺寸有多大,只能在一行顯示 可以通過width和 height 來設置大小,有一點需要注意,如果通過css設置了大小,size屬性

原创 H5倒計時的實現

在最近開發的界面中有一個,更換手機號,涉及到發送驗證碼,倒計時的功能,簡單總結一下 這裏在js中用到兩個重要的方法:setInterval()和setTimeout() 它們分別的含義是: setInterval()表示每隔多長時間

原创 Xcode10 添加代碼塊、查看icon圖片

在升級了xcode10之後,發現之前右下角的功能欄不見了 在更新之後的右上角多了一個這樣的按鈕 新版的xcode將功能移到了上面,左鍵點擊向下拖動,就會看到icon圖片瀏覽和已經保存的代碼塊,查看代碼塊,選中,按空格就可以查看了

原创 ios12----密碼填充功能

記錄一些官方文檔的翻譯,裏面是一些配置密碼自動填充時官方給出的所有方法,後續會重新整理一份在實際項目上的應用 認證服務 爲密碼管理器應用程序定義新的擴展點,以便與密碼自動填充集成。 概觀 使用身份驗證服務框架將密碼管理器應用程序與密碼

原创 定位開發與百度地圖的封裝

整理了一下項目中的定位功能,對百度地圖的封裝總結記錄一下 首先通過CocoaPods引入百度 pod ‘BaiduMapKit’ 然後爲了更方便的在項目中使用它,對其中BMKMapManager這個類進行繼承封裝 在這個繼承類L

原创 關於iOS基礎總結(5)--tableView的優化、cell高度優化、內存優化

1、tableView的優化 iOS平臺因爲UIKit本身的特性,需要將所有的UI操作都放在主線程執行,所以有時候就習慣將一些線程安全性不確定的邏輯,以及它線程結束後的彙總工作等等放到了主線程,所以主線程包含大量計算、IO、繪製都有可能

原创 ios11使用tableView的一些問題

隨着ios11,xcode9的到了,一些新舊API的更替,以往tableView上可以正常顯示的界面出現了一些問題,在這裏簡單記錄一下 首先,如果在項目的tableView中,使用了 - (CGFloat)tableView:(UIT

原创 ios多線程--NSOperation

NSOperation的基本使用: NSOperation是對GCD的封裝,兩個核心概念:隊列,操作 它的基本概念: NSOperation本身是抽象類,只能只有它的子類 三個子類分別是:NSBlockOperation、NSIn

原创 ios多線程--GCD

GCD全稱Grand Central Dispatch,純C語言,提供了很多強大的函數,現在ios開發中非常主流的多線程開發方式,記錄一下基本原理以及面試中 GCD的兩個核心概念: 任務:執行的操作 隊列:用於存放

原创 ios多線程--基礎知識(進程,線程,線程安全,互斥鎖,線程通訊)

基礎知識: 進程: 在系統中正在運行的一個應用程序,每個進程之間是獨立的,每個進程都運行在其專用並且受保護的內存空間中 線程: 一個進程要想執行任務,必須得有線程(一個進程至少有一條線程),進程中所有的任務都在線程中執行 二者關係與

原创 關於iOS基礎總結(3)--KVC,KVO、POST,GET、深淺複製

1、KVC 和 KVO · KVC(key-value-coding鍵值編碼,跟多情況下會簡化程序代碼)的常見用法: ·· 給私有變量(該變量不對外開放)賦值:[Person setValue: @”19” ForKeyPath:@”

原创 關於iOS基礎總結(4)--動畫、MVVM、圖片緩存、常用第三方

1、關於項目中動畫的使用 · 序列幀動畫:self.imageView.animationImages = array; · [UIView animateWithDuration] + CGAffinetransform · 核心

原创 FMDB數據庫的簡單操作

一直以來對數據庫的操作都感覺很麻煩,每次封裝FMDB的工具類都是一件讓人很頭大的事情,在這記錄一下它的一些常用操作,很方便實用 首先,是常用的數據庫語句 增 INSERT INTO 表名(字段1, 字段2) VALUES(值1,

原创 ios多線程--NSThread

一個NSThread對象就代表着一條線程 創建啓動線程 //創建線程 /* 第一個參數:目標對象 第二個參數:選擇器,線程啓動要調用哪個方法 第三個參數:前面方法要接收的參數(最多隻能接收一個