Time of Update: 2017-01-19
單例模式是一種常用的軟體設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中一個類只有一個執行個體而且該執行個體易於外界訪問,從而方便對執行個體個數的控制並節約系統資源。如果希望在系統中某個類的對象只能存在一個,單例模式是最好的解決方案。1、書寫步驟1)、建立類方法,返回對象執行個體.以shared default
Time of Update: 2017-01-19
一、單例的作用顧名思義,單例,即是在整個項目中,這個類的對象只能被初始化一次。它的這種特性,可以廣泛應用於某些需要全域共用的資源中,比如管理類,引擎類,也可以通過單例來實現傳值。UIApplication、NSUserDefaults等都是IOS中的系統單例。二、單例模式的兩種寫法1,常用寫法#import "LGManagerCenter.h"static LGManagerCenter *managerCenter;@implementation
Time of Update: 2017-01-19
iOS系統內建的定位服務可以實現很多需求。比如:擷取當前經緯度,擷取當前位置資訊等等。其定位有3種方式:1,GPS,最精確的定位方式2,蜂窩基站三角定位,這種定位在訊號基站比較秘籍的城市比較準確。3,Wifi,這種方式貌似是通過網路電訊廠商的資料庫得到的資料,在3種定位種最不精確首先你要在你的Xcode中添加兩個串連庫,MapKit和CoreLocation,如圖core
Time of Update: 2017-01-19
在iOS開發中,多線程的實現方式主要有三種,NSThread、NSOperation和GCD,我前面部落格中對NSOperation和GCD有了較為詳細的實現,為了學習的完整性,今天我們主要從代碼層面來實現NSThread的使用。案例代碼上傳至 https://github.com/chenyufeng1991/NSThread。(1)初始化並啟動一個線程 - (void)viewWillAppear:(BOOL)animated { [super
Time of Update: 2017-01-19
Graphics Context是圖形上下文,也可以理解為一塊畫布,我們可以在上面進行繪畫操作,繪製完成後,將畫布放到我們的view中顯示即可,view看作是一個畫框.CGContextRef功能強大,我們藉助它可以畫各種圖形。開發過程中靈活運用這些技巧,可以協助我們提供代碼水平。首先建立一個整合自UIView的,自訂CustomView類。在CustomView.m中實現代碼。複製代碼 代碼如下:#import
Time of Update: 2017-01-19
最近簡訊服務商要求公司的app在擷取簡訊驗證碼時加上校正碼,目前比較流行的是採用類似滑動解鎖的方式,我們公司採取的就是這種方式,設計圖如下所示:這裡校正內部的處理邏輯不作介紹,主要分享一下介面效果的實現, 下面貼出代碼:先子類化UISlider#import <UIKit/UIKit.h>#define SliderWidth 240#define SliderHeight 40#define SliderLabelTextColor [UIColor
Time of Update: 2017-01-19
廢話不多說,直接給大家貼代碼了。一,代碼。- (void)viewDidLoad{[super viewDidLoad];// Do any additional setup after loading the view.//第一種方法NSLog(@"--first-%i",[self convertToInt:@"123我愛你"]);//第二種方法NSLog(@"--second--%ld",[self getToInt:@"123我愛你"]);}//得到中英文混合字串長度 方法1-
Time of Update: 2017-01-19
UITextField是IOS開發中使用者互動中重要的一個控制項,常被用來做帳號密碼框,輸入資訊框等。觀察效果圖UITextField有以下幾種特點:1.預設佔位文字是灰色的2.當游標點上去時,佔位文字變為白色3.游標是白色的接下來我們通過不同的方法來解決問題一.將xib中的UITextField與代碼關聯通過NSAttributeString方法來更改佔位文字的屬性(void)viewDidLoad {[super viewDidLoad];// Do any additional
Time of Update: 2017-01-19
UIDatePicker的建立UIDatePicker是一個可以用來選擇或者設定日期的控制項,不過它是像轉輪一樣的控制項,而且是蘋果專門為日曆做好的控制項,如下圖所示:除了UIDatePicker控制項,還有一種更通用的轉輪形的控制項:UIPickerView,只不過UIDatePicker控制項顯示的就是日 曆,而UIPickerView控制項中顯示的內容需要我們自己用代碼設定。本篇文章簡單介紹UIDatePicker控制項,後邊的文章會介紹 UIPickerView。1、運行Xcode
Time of Update: 2017-01-19
最近遇到一個關於導覽列返回按鈕的問題,因為之前項目裡面都是用的系統預設的返回按鈕樣式所以沒有想過要去更改,後來有需要將返回按鈕箭頭旁邊的文字去掉,同時將該返回按鈕的點擊事件重新定義。一開始嘗試自訂按鈕然後設定為leftBarButtonItem,但是這樣圖片可能跟系統內建的不一樣,還有就是返回按鈕的位置跟系統內建的不一樣。後來找了一些資料,發現將文字去掉比較簡單,一般做法是控制器中添加如下代碼,然後他的下一級控制就有一個只有箭頭沒有文字返回按鈕:複製代碼
Time of Update: 2017-01-19
問題:實現下圖中右側的按鈕文字效果方法:[MyTools createMyImageview:topEditView frame:CGRectMake(widthAll-90, 12, 17, 16) imageName:@"離線課程_下載更多.png"];UIButton *downMoreButton = [MyTools createMyBtn:@"下載更多" frame:CGRectMake(widthAll-70, 10, 60, 20) uiview:topEditView
Time of Update: 2017-01-19
如何正確地格式化時間這也是我們這兩天遇到的問題,跟使用者幾經溝通之後,終於抓到log,發現問題竟然是格式化導致的。怎麼解決呢?這個時候NSLocale的重要性就體現出來了。NSLocale作為大家都不常用的一個類,NSLocale類是將與國家和語言相關的資訊進行簡單的組合,包括貨幣、語言、國家等的資訊。所以很簡單,我們把dateFormatter的locale屬性改一下即可解決這個問題。將下面代碼放在dateFormatter初始化之後:複製代碼 代碼如下:NSLocale *usLocale
Time of Update: 2017-01-19
建立一個定時器(NSTimer)- (void)viewDidLoad { [super viewDidLoad]; [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(actionTimer:) userInfo:nil repeats:YES];}- (void)actionTimer:(NSTimer *)timer{}NSTimer預設運行在default mode下,default
Time of Update: 2017-01-19
縱觀移動市場,一款移動app,要想長期在移動市場立足,最起碼要包含以下幾個要素:實用的功能、極強的使用者體驗、華麗簡潔的外觀。華麗外觀的背後,少不了美工的辛苦設計,但如果開發人員不懂得怎麼合理展示這些設計好的圖片,將會糟蹋了這些設計,功虧一簣。比如下面張圖片,本來是設計來做按鈕背景的:button.png,尺寸為:24x60現在我們把它用作為按鈕背景,按鈕尺寸是150x50:// 得到view的尺寸 CGSize viewSize = self.view.bounds.size; //
Time of Update: 2017-01-19
URL Scheme的作用我們都知道蘋果手機中的APP都有一個沙箱,APP就是一個資訊孤島,相互是不可以進行通訊的。但是iOS的APP可以註冊自己的URL Scheme,URL
Time of Update: 2017-01-19
本文執行個體為大家分享了iOS實現壓縮圖片上傳功能,供大家參考,具體內容如下#pragma mark - 開啟相機-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{ UIImage *image =
Time of Update: 2017-01-19
ios提供了copy和mutablecopy方法,顧名思義,copy就是複製了一個imutable的對象,而mutablecopy就是複製了一個mutable的對象。copy與retain的區別:copy是建立一個新對象,retain是建立一個指標,引用對象計數加1。Copy屬性工作表示兩個對象內容相同,新的對象retain為1
Time of Update: 2017-01-19
之前我們已經學習了觸摸處理和手勢識別,其實這兩個同屬於iOS事件的觸摸事件,今天我們來學習下iOS事件的另外兩個事件:一、運動事件運動事件,是通過加速器進行觸發,和觸摸事件一樣,繼承UIResponder類的對象才能處理運動事件UIResponder處理運動事件的方法:複製代碼 代碼如下:#pragma mark 運動開始時執行- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;#pragma mark
Time of Update: 2017-01-19
一、UIGestureRecognizer簡單介紹我們已經學習了觸摸事件處理,但觸摸事件處理起來很麻煩,每個觸摸事件處理都需要實現3個touches方法,比較繁瑣,實際上我們可以使用更加簡單的觸摸事件處理操作,那就是 手勢識別UIGestureRecognizer 。手勢識別操作基類UIGestureRecognizer不能直接使用,我們常使用的是它的子類,這些手勢操作類都繼承自UIGestureRecognizer類常用手勢識別子類:點按手勢
Time of Update: 2017-01-19
首先說明下,下面兩種方法均可以獲得手機的mac地址,但是有個限制,是在iOS7以下才可以獲得。iOS7以後蘋果對於sysctl和ioctl進行了技術處理,MAC地址返回的都是02:00:00:00:00:00。官方文檔上這樣寫的:"Twolow-level networking APIs that used to return a MAC address now return thefixed value 02:00:00:00:00:00. The APIs in question are