iOS 小知識點(持續更新)

来源:http://www.cnblogs.com/jukaiit/archive/2016/06/10/5165621.html
-Advertisement-
Play Games

1、如何通過代碼設置Button title的字體大小 設置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] ; 2、獲取當前時間 3、判斷字元串是否為空字元的方法 4、tableView優化 5、百度地圖自定義大頭針圖 ...


 

1、如何通過代碼設置Button  title的字體大小

設置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] ;

 

2、獲取當前時間

    NSDate *timeDate=[NSDate date];
    
    NSDateFormatter * dateformatter=[[NSDateFormatter alloc] init];
    
    [dateformatter setDateFormat:@"YYYYMMddHHmmsssss"];
    
    NSString *locationString=[dateformatter stringFromDate:timeDate];

 

3、判斷字元串是否為空字元的方法

- (BOOL) isBlankString:(NSString *)string {
    if (string == nil || string == NULL) {
        return YES;
    }
    if ([string isKindOfClass:[NSNull class]]) {
        return YES;
    }
    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {
        return YES;
    }
    return NO;
}

 

4、tableView優化

    //刷新整個表格
    [_tableView reloadData];
    
    //刷新當前行
    [_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

 

5、百度地圖自定義大頭針圖片

- (BMKAnnotationView *)mapView:(BMKMapView *)view viewForAnnotation:(id <BMKAnnotation>)annotation
{
    // 生成重用標示identifier
    static NSString *AnnotationViewID = @"AnnotationViewID";
    
    // 檢查是否有重用的緩存
    BMKAnnotationView* annotationView = [view dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];
    ((BMKPinAnnotationView*)annotationView).pinColor = BMKPinAnnotationColorGreen;
    annotationView.image = [UIImage imageNamed:@"XXX.png"];
}

 

6、iOS APP上架所需要的 屏幕尺寸

  640*960、640*1136、750*1334、1242*2208

 

7、iOS APP 圖標的尺寸

  58*58、80*80、120*120、180*180

 

8、

蘋果公司賬號申請: 這個是申請方法:http://jingyan.baidu.com/article/0320e2c1d153161b87507bba.html 這個是官網:https://developer.apple.com/enroll/organization/

 

9、關閉定時器

[_myTimer invalidate];

 _myTimer = nil;

 

10、鍵盤釋放第一響應

 - (BOOL)textFieldShouldReturn:(UITextField *)textField {

 [textField resignFirstResponder];

 return YES;

}

 

11、點擊UITableViewCell時,沒有點擊效果,

在cellForRowAtIndexPath:方法中寫上

cell.selectionStyle = UITableViewCellSelectionStyleNone;

 

12、使用NSJSONSerialization 返回的對象,取決於最外層是什麼,如果是{}那就是字典,[]那就是數組等

 

13、只支持豎屏,修改info.plist 文件就可以了。找到"Supported interface orientations" 設置item 項為Portrait就可以了。這個設置為全局設置。

 

14、iOS開發

先搭框架,後畫界面,寫功能,寫介面,調試,寫適配

iOS 開發文檔 流程圖 UI 框架 介面 功能 適配 測試 更改
iOS 初級開發工程師 C語言基礎+swift語言基礎
      中級iOS開發工程師 iOS項目開發+UI部分+動畫圖層部分

 

15、ViewController的生命周期中各方法執行流程如下:

init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc

 

16、GCD

1)運行在主線程的Main queue,通過dispatch_get_main_queue獲取。
2)並行隊列global dispatch queue,通過dispatch_get_global_queue獲取,由系統創建三個不同優先順序的dispatch queue。並行隊列的執行順序與其加入隊列的順序相同。
3)串列隊列serial queues一般用於按順序同步訪問,可創建任意數量的串列隊列,各個串列隊列之間是併發的。

17、Xcode項目中我們經常遇到因為空數據(伺服器傳回來的數據通過JsonKit解析為之類的)導致記憶體泄漏進而程式崩潰的現象,這個在之前學校的時候就被坑了很多次,所以有必要封裝一個非空處理的類,由於能力有限,查看一些網上的資料,想到採用遞歸的方式處理。

解決辦法:一個老外早已在Githud有了空處理的神器:https://github.com/nicklockwood/NullSafe,只要將這個類別(Category)加入項目中就可萬事無憂,由於裡面代碼我也不太懂,所以大家自己研究下哈。

 

18、讀取plist文件

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"provinces.plist" ofType:nil];

NSArray *arr = [NSArray arrayWithContentsOfFile:filePath];

 // 載入plist數據
    
//     一個NSBundle對象對應一個資源包(圖片、音頻、視頻、plis等文件)
//     NSBundle的作用:用來訪問與之對應的資源包內部的文件,可以用來獲得文件的全路徑
//     項目中添加的資源都會被添加到主資源包中
//     [NSBundle mainBundle]關聯的就是項目的主資源包

    NSBundle *bundle = [NSBundle mainBundle];
    
    // 利用mainBundle獲得plist文件在主資源包中的全路徑
    NSString *file = [bundle pathForResource:@"shops" ofType:@"plist"];
//    NSString *file = [bundle pathForResource:@"shops.plist" ofType:nil];
    // 凡是參數名為File,傳遞的都是文件的全路徑
    shopsArray = [NSArray arrayWithContentsOfFile:file];

 19、懶載入:用到時再去載入,而且也只載入一次

      (1).懶載入基本

       懶載入——也稱為延遲載入,即在需要的時候才載入(效率低,占用記憶體小)。所謂懶載入,寫的是其get方法.

       註意:如果是懶載入的話則一定要註意先判斷是否已經有了,如果沒有那麼再去進行實例化

      (2).使用懶載入的好處:

       好處一:不必將創建對象的代碼全部寫在viewDidLoad方法中,代碼的可讀性更強

       好處二:每個控制項的getter方法中分別負責各自的實例化處理,代碼彼此之間的獨立性強,松耦合


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、css的概念:(CascadingStyleSheet級聯樣式表) 優點:1.內容與表現分離。(用網頁的內容xhtml就可以與表象分開) 2.表象統一 3.豐富的樣式 4.減少網頁代碼 5.運用獨立於網頁的css 2.選擇器 1.標簽選擇器 標簽名{屬性:屬性值;} 2.類選擇器 .類名{屬性: ...
  • 開篇語 最近接手了一個移動端的項目。個人感覺是自己做得比較快而且比較健壯的一個。。。移動端最主要就是頁面要適用不同的手機屏幕,ipad等。下麵就分享一些技巧,讓你不依賴任何框架高效地搭建自己的項目。 一、樣式按組件或板塊分文件寫再合成 ①設置各種變數 採用scss或者less來寫css代碼有很多好處 ...
  • 這次我們來看下js組件的使用,本篇文章會有點長,希望大家可以耐心看,相信收穫會有不少。不少園友加我好友,表示喜歡我寫文字的風格,簡單明瞭,這裡,再次謝謝你們的支持。一方面,博主自身技術有限,寫的東西都比較基礎,另一方面,博主寫的東西,都是根據自己的理解,把複雜的東西用最簡單的語言表達出來。所以,寫的 ...
  • 我是一隻即將大四的大三狗,這是我的第一篇博客,說來慚愧。今年1月份,學校放寒假的時候開始自學的IOS,放假的時候比較起勁,看了一堆Object-C的視頻,然後照著中英文對照的IOS基礎開發教程,做了兩個簡單的手機APP,一個是小游戲,一個是日程提醒的。 但是開學之後,又投入到學校的課程還有我的一些學 ...
  • step 1:定義一個監聽介面 step 2:android application文件中添加如下代碼 //初始化 //註冊監聽 //記憶體空間過低的時候,被系統調用 step 3:那些浪費記憶體的地方,比如圖片緩存,可以實現並註冊這個監聽 推薦:http://www.cnblogs.com/rouch ...
  • 一. 概要 在 iOS 設備中,照片和視頻是相當重要的一部分。最近剛好在製作一個自定義的 iOS 圖片選擇器,順便整理一下 iOS 中對照片框架的使用方法。在 iOS 8 出現之前,開發者只能使用 AssetsLibrary 框架來訪問設備的照片庫,這是一個有點跟不上 iOS 應用發展步伐以及代碼設 ...
  • 遞歸搜尋NSString中重覆的文本 效果 源碼 https://github.com/YouXianMing/iOS-Project-Examples 中的 StringRange 項目 ...
  • 在用戶使用app過程中,會產生各種各樣的事件 iOS中的事件可以分為3大類型:觸摸事件、加速計事件、遠程式控制制事件 在iOS中不是任何對象都能處理事件,只有繼承了UIResponder的對象才能接收並處理事件。我們稱之為“響應者對象” UIApplication、UIViewController、UI ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...