IOS 圖文混排(CoreText.framework) 本文主要介紹了IOS圖文混排的資料,這裡整理了在網上尋找的內容,協助理解,掌握這部分知識,以下就是整理的內容: 利用CORETEXT進行圖文混排。實現代碼:void RunDelegateDeallocCallback( void* refCon ){ } CGFloat
在iOS中,需要調起一個app可以使用schema協議,這是iOS原生支援的,並且因為iOS系統中都不能使用自己的瀏覽器核心,所以所有的瀏覽器都支援,這跟android生態不一樣,android是可以自己搞核心的,但是iOS不行。在iOS中提供了兩種在瀏覽器中開啟APP的方法:Smart App Banner和schema協議。Smart App Banner即通過一個meta 標籤,在標籤上帶上app的資訊,和開啟後的行為,例如:app-id之類的,代碼形如:複製代碼
Regex在ios中應用一、什麼是Regex Regex,又稱正規標記法,是對字串操作的一種邏輯公式。Regex可以檢測給定的字串是否符合我們定義的邏輯,也可以從字串中擷取我們想要的特定部分。它可以迅速地用極簡單的方式達到字串的複雜控制。二、Regex的文法 看一個過濾純數位例子- (BOOL)validateNumber:(NSString *) textString{ NSString* number=@"^[0-9]+$"; NSPredicate *numberPre =
手勢識別在iOS上非常重要,手勢操作行動裝置的重要特徵,極大的增加了行動裝置使用便捷性。1、UIGestureRecognizer介紹手勢識別在iOS上非常重要,手勢操作行動裝置的重要特徵,極大的增加了行動裝置使用便捷性。iOS系統在3.2以後,為方便開發這使用一些常用的手勢,提供了UIGestureRecognizer類。手勢識別UIGestureRecognizer類是個抽象類別,下面的子類是具體的手勢,開發這可以直接使用這些手勢識別。
那什麼時候需要加鎖呢,就是當多條線程同時操作一個變數時,就需要加鎖了。上代碼聲明變數@interface ViewController ()@property (strong, nonatomic)NSThread *thread1;@property (strong, nonatomic)NSThread *thread2;@property (strong, nonatomic)NSThread *thread3;@property (assign, nonatomic)int
近日學習了順延強制的幾種方法,分享一下。1.performSelector(NSObject)方法 2.NSTimer方法 3.GCD方法 4.sleep(NSThread)方法順延強制代碼:- (void)delayDo : (id)sender {
如果您的 iPhone 應用裡有個 view,既有單擊操作又有雙擊操作。使用者雙擊 view 時,總是先執行一遍單擊的操作再執行雙擊的操作。所以直接判斷時就會發現不能直接進入雙擊操作。下面是區分 touch 事件是單擊還是雙擊的方法-(void)singleTap{NSLog(@"Tap 1 time");}-(void)doubleTap{NSLog(@"Tap 2 time");}- (void)touchesBegan:(NSSet *)touches
我們知道Gif是由一陣陣畫面組成的,而且每一幀畫面播放的時常可能會不相等,觀察上面兩個例子,發現他們都沒有對Gif中每一幀的顯示時常做處理,這樣的結果就是整個Gif中每一幀畫面都是以固定的速度向前播放,很顯然這並不總會符合需求。 於是自己寫一個解析Gif的工具類,解決每一幀畫面並遵循每一幀所對應的顯示時間進行播放。 程式的思路如下: 1、首先使用ImageIO庫中的CGImageSource家在Gif檔案。 2、通過CGImageSourc
下載demo連結:https://github.com/MinLee6/buttonShow.git螢幕擺放的控制項有兩種方式,一種根據具體內容變化,一種根據螢幕寬度變化。下面我分別將兩個方式,用代碼的方式呈現:1:根據具體內容變化// // StyleOneViewController.m // buttonShow // // Created by limin on 15/06/15. // Copyright © 2015年 信諾匯通訊息科技(北京)有限公司.
一、 概述可以說微信做的使用者體驗太棒了,可以做到老少皆宜,給個贊,我們也同時應該告誡自己,使用者體驗應該向微信看齊,微信就是我們的標杆,那我們今天也來仿一仿微信添加的標籤功能。只能仿著做了,真是做不到微信的那種體驗。甘拜下風。我們上篇學習了shape屬性的用法,那我們今天就用shape來做下微信的標籤功能。先看一下效果。我不僅用到了shape屬性,還用到了翔哥的標籤布局FlowLayout跟TagFlowLayout鴻洋的部落格二、效果圖三 、定義shape添加標籤<?xml
前段時間公司在研發一個電商項目,趁現在有時間把其中的知識點整理整理。項目的商品詳情頁面當時是仿製淘寶的,用到的第三方庫是MJRefresh,上拉操作和下拉操作的重新整理效果是把MJRefresh重新整理效果從建立個分類封裝了一下,感謝傑哥!!!基本思路:1、設定一個 UIScrollView 作為視圖底層,並且設定分頁為兩頁2、然後在第一個分頁上添加一個 UITableView 並且設定表格能夠上提載入(上拉操作即為讓視圖滾動到下一頁)3、 在第二個分頁上添加一個 UIScrollView
IOS JSON轉PLIST 從xx.json檔案中讀取JSON資料,寫入到xx.plist檔案中,實現代碼如下:NSString *path = @"/Users/android_ls/Desktop/city_province.json"; NSArray *array = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:path]
本文主要介紹了iOS中對象指標和基礎資料類型如何進行強轉,下面話不多說,直接來看樣本詳解。一、對象指標的強轉:UIView *view = [UIView new];//new一個UIView類的對象UILabel *label = (UILabel *)view;//強轉成UILabel指標label.text = @"123";//給label的text屬性賦值(調用label的setText方法)上述代碼會產生崩潰,崩潰資訊如下:-[UIView setText:]:
一、關於同一個URL的多次請求 有時候,對同一個URL請求多次,返回的資料可能都是一樣的,比如伺服器上的某張圖片,無論下載多少次,返回的資料都是一樣的。上面的情況會造成以下問題 (1)使用者流量的浪費 (2)程式響應速度不夠快 解決上面的問題,一般考慮對資料進行緩衝。 二、緩衝 為了提高程式的響應速度,可以考慮使用緩衝(記憶體緩衝\硬碟緩衝)第一次請求資料時,記憶體緩衝中沒有資料,硬碟緩衝中沒有資料。 快取
一、Keychain
下圖為京東商城的截圖很多人看到這個,第一眼想到的是用TableView和CollectionView來做切換,筆者剛開始也是認為這麼做,後來發現還有一個非常的簡單方法,就可以實現這個功能。實現代碼1、首先建立一個CollectionView。- (UICollectionView *)collectionView{ if (!_collectionView) { UICollectionViewFlowLayout *flowlayout =
在IOS開法中經常會遇到鍵盤遮擋螢幕的事情(比如輸入帳號密碼驗證碼等等),就使得原本都不大的螢幕直接佔了一半甚至更多的位置,這倒無所謂,關鍵是擋住了下面的按鈕。這樣的話按鈕的事件也就觸發不了,最好的解決辦法就是當輸入這些資訊的時候讓整個螢幕上移一個鍵盤的位置,或者上移到指定的位置。首先一般輸入的話都用的是UITextField,所以要監聽使用者什麼時候開始輸入和什麼時候結束輸入,直接設定代理代理就行了,要遵受UITextFieldDelegate協議。//遵循協議@interface
照例我們先看看效果圖怎麼樣?效果很不錯吧,下面來一起看看實現的過程和程式碼範例。實現原理從圖中可以大致看出,爆炸點點都是取的某座標的顏色值,然後根據一些動畫效果來完成的。取色值怎麼取的view的某個點的顏色值呢?google一下,就可以找到很多答案。就不具體說了。建立1*1的位元影像,然後渲染到螢幕上,然後得到RGBA。我這裡寫的是UIView的extension。extension UIView { public func colorOfPoint(point:CGPoint) ->
在iOS開發過程中有的時候會需要用到漸層的顏色,這篇文章總結了三種方法來實現,有需要的朋友們下面來一起看看吧。一、CAGradientLayer實現漸層CAGradientLayer是CALayer的一個特殊子類,用於產生色彩坡形的圖層,使用較為方便下面介紹下它的相關屬性: colors 漸層的顏色 locations
因為程式要求要插入一個日曆控制項,該空間的要求是從當天開始及以後的六個月內的日曆,上網查資料基本上都說只要擷取兩個條件(當月第一天周幾和本月一共有多少天)就可以實現一個簡單的日曆,剩下的靠自己的簡單邏輯就OK了,下面開始自己從開始到完成的整個過程1.首先做NSDate類目,擴充一些方法讓日期之間轉換更加方便#import <Foundation/Foundation.h>@interface NSDate (LYWCalendar)#pragma mark - 擷取日-