原创 swift-生成二維碼(可帶圖片)

import UIKit class ViewController: UIViewController {     override func viewDidLoad() {         super.viewDidLoad()

原创 判斷兩個日期是不是同一天的幾種方法(swift3新增了一種方法)

1,格式化成字符串比較 下面方法將兩個日期格式化成只包含年月日的字符串,再比較兩個字符串是否相等。 1 2 3 4 5 6 7 8 9 10 //初始化日期格式器 let dformatter

原创 iOS 10 UICollectionView 性能優化

前言 關於 iOS 10 UICollectionView的新特性,主要還是體現在如下3個方面 順滑的滑動體驗 現在基本上人人都離不開手機,手機的app也每天都有人在用。一個app的好壞由它的用戶體驗決定。在可以滑動的視圖裏面,必須要更加

原创 Swift - 設置UILabel、UITextView的文字行間距

有時我們需要調整 label 或 textView 的文本行間距大小,但這兩個組件都沒有相關屬性可以直接設置。這個就需要藉助富文本(NSAttributedString)來實現。 一、設置UILabel的行間距 1,效果圖 左側是默認

原创 Swift - 去處圖片的白色、黑色背景(使UIImage背景透明)

1,效果圖 (1)點擊“白底原圖”“黑底原圖”按鈕可以切換顯示白底或黑底的圖片。 (2)點擊“摳圖”按鈕後,將當前選擇的圖片的背景變成透明,並顯示在 imageView 上。這裏爲了看出處理後的圖片與原圖的區別,我將 image

原创 Swift - 在TableViewCell中獲取父TableView(附:獲取任意類型的父View)

一、在TableViewCell裏獲取對應的TableView 有時我們需要在自定義的單元格(tableViewCell)中獲取其所在的表格(tableView)對象。除了可以從外部把 tableView 傳入到 cell 中去外,還可以

原创 Swift - 如何連續dismiss 2個VC視圖控制器(以及直接跳回根視圖)

我們知道通過 present 和 dismiss 方法可以進行頁面(ViewController)跳轉。其中 present 是加載新的模態視圖,而 dismiss 是退出當前視圖,回到上一個視圖。 但有時我們並不想要一級一級

原创 Swift Protobuf 初探 —— 繼 XML 後,JSON 也要被淘汰了嗎

Protocol Buffers 是什麼? Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for

原创 Swift - 實現日誌輸出的封裝1(顯示出調用的文件名、方法、行號)

在開發調試程序時,我們少不了使用 print 方法進行日誌打印。當然簡單地調試使用 print 方法就夠了,但如果日誌輸出的地方很多,就不好區分出每條日誌具體是在哪裏打印的。 本文對日誌打印功能做個封裝,自動實現日誌信息的格式化。

原创 Swift - QQ討論組頭像的實現 (多人聊天的組合頭像)

我們知道 QQ 裏面的聯繫人頭像是圓形的。當我們發起多人聊天時,會自動生成一個討論組。這個討論組的頭像圖標是由組內人員頭像自動組合生成的。比如:組內有兩個人,就用兩個人的頭像組合成討論組的頭像圖標。有三個就是用三個頭像來組成,以此類推

原创 Swift - 第三方日曆組件CVCalendar使用詳解1(配置、基本用法)

CVCalendar 是一款超好用的第三方日曆組件,不僅功能強大,而且可以方便地進行樣式自定義。同時,CVCalendar 還提供月視圖、周視圖兩種展示模式,我們可以根據需求自由選擇使用。 一、安裝配置 (1)從 GitHub 上下載最

原创 Swift - 微信聊天羣頭像實現 (羣聊的組合頭像)

1,樣例效果圖 (1)組合圖片的功能我使用擴展 UIImage 的方式實現。 (2)根據初始化傳入的圖片數組中圖片數量的不同(超過9張圖片的話也只顯示前9個),組件會自動設置內部圖片的尺寸和位置。 (3)除了只有一張圖片的情況

原创 Swift - 判斷是否有某功能訪問權限,沒有則提示,並自動跳轉到設置頁

由於 iOS 系統的安全限制,App 如果需要訪問設備的通訊錄、麥克風、 相冊、 相機、地理位置等時,需要請求用戶是否允許訪問。  有時用戶不小心點了“不允許”,後面可能就不知道要去哪裏再開啓這個權限了。這就要求我們應用

原创 Swift - 通用鏈接(Universal Links)的使用詳解(鏈接打開app)

一、通用鏈接介紹 通用鏈接(Universal Links)是 iOS9 推出的一項功能。如果我們的應用支持通用鏈接,那麼就能夠方便的通過傳統的 HTTP 鏈接來啓動 APP(只要設備上已經安裝了這個 App,不需要額外做任何判斷)

原创 IQKeyboardManager第三方庫的使用

IQKeyboardManager是iOS中解決鍵盤彈起遮擋UITextField/UITextView的一種很實用的工具。無需輸入任何代碼,不需要額外的設置。使用IQKeyboardManager的你只需要將源文件添加到項目。 這裏附上