你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 常用開發技巧系列(三)

常用開發技巧系列(三)

編輯:IOS開發綜合

在這裡將為大家介紹的是常用開發技巧系列(三)的相關介紹,具體代碼請看下文

熱更新衍生出來的問題:

前兩天都在說IOS熱更新的問題,結果今天就撞槍口上了,真的!審核被拒了,當然這並不是在我自己的項目使用了什麼RN,或者JSPath等的問題,是個推!!在熱更新出來的第一時間,高德就更新了自己的SDK,個推的今天才更新的,沒錯就是今天!下面是蘋果審核被拒的一些內容,可以給個參考,只要是下面這類型的都是最新的熱更新的問題。它所說的問題,因為項目是原生的能想到的只有第三方SDK會用,上網查了一下而又涉及到這個的SDK我自己用的也只有個推!

常用開發技巧系列(三)

恩,你只能去更新個推的SDK,結果Cocopods就出現這個錯誤![!] Unable to satisfy the folloWing requirements:

常用開發技巧系列(三)

這個你在cd到項目文件,終端執行 pod update --verbose 就可以解決!(提示:這裡時間會久一點,耐心等!)

警告繼續:

在Xcode中,警告這個東西還是很煩人的!下面簡單的說兩個消除警告的技巧!

第一:加入你使用SVN或者Git在管理代碼,這當中你要是刪除了一些你創建了又覺得沒用的文件。就會有這樣的一堆file missing警告!!!像下面這個同學的情況,要是你項目有一千多個警告,看著肯定覺得煩!

升級xcode8後,提示一堆file missing警告

常用開發技巧系列(三)

其實,在這篇博客的最後面是有正解的:Xcode->Preferences->Source->Enable Source Control 勾勾去掉!

解釋一下這個Enable Source Control:啟用/禁用XCode自帶Source Control Manager(SCM)。

第二種:這種警告就和SVN或者Git就沒有什麼關系了

比如下面的注釋時候的警告,反正我知道環信SDK的確是一堆中文注釋完了之後再加一堆的英文注釋,這個到可以理解,畢竟是要走向世界的!好了,消除警告先。

常用開發技巧系列(三)

這樣操作:

常用開發技巧系列(三)

點擊我們選中的 Reveal in Log ,你就會看到下面這樣的文字:

常用開發技巧系列(三)

大家看到紅線下面上面的 [-Wdeprecated-declrations],方法就在這裡,你把-W換成 -Wno- 再去掉方括號,剩下的就是我們要用的,比如這裡的就是:-Wno-deprecated-declrations

然後在我們項目的Build Settings 中查找 Other Waring Flags,添加-Wno-deprecated-declrations,這 deprecated-declrations類型的警告就不再會出現。

(說明:上面的-Wno-deprecated-declrations並不是消除環信SDK警告要輸入的,只是給大家說一下整個的操作步驟!)

圖片的拉伸處理:

先說一個最常見的我們經常會見到的聊天的時候消息顯示框:

在我們經常用到拉伸中,你經常看到的imageView.image屬性,這裡面的image是根據imageView的大小拉伸的。這樣子的缺陷大家也都知道,會變形!

下面三個是我們經常用到的拉伸圖片的方法:

 /*
    - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight __TVOS_PROHIBITED

    - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets NS_AVAILABLE_IOS(5_0); // create a resizable version of this image. the interior is tiled when drawn.

    - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode NS_AVAILABLE_IOS(6_0); // the interior is resized according to the resizingMode

*/

我們一個一個說說,第一個方法我們經常用到在聊天消息框的拉伸,下面是代碼和效果圖的對比:

解釋一下下面方法可拉伸的范圍都是距離leftCapWidth後的1豎排像素,和距離topCapHeight後的1橫排像素。比如下面代碼的意思是將圖片從左起第2列,上起第2行,坐標為(2,2)的像素點進行復制。

    UIImage * image1 = [UIImage imageNamed:@"image"];
    UIImageView * imageView1 = [[UIImageView alloc]initWithImage:image1];
    imageView1.frame = CGRectMake(50, 100, 300, 60);
    [self.view addSubview:imageView1];
    
    
    UIImage * image2 = [UIImage imageNamed:@"image"];
    image2 = [image2 stretchableImageWithLeftCapWidth:1 topCapHeight:1];
    UIImageView * imageView = [[UIImageView alloc]initWithImage:image2];
    imageView.frame = CGRectMake(50, 200, 300, 60);
    [self.view addSubview:imageView];

常用開發技巧系列(三)

再說說第二個方法:

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets NS_AVAILABLE_IOS(5_0); // create a resizable version of this image. the interior is tiled when drawn

下面是具體的使用:

UIImage * image1 = [UIImage imageNamed:@"image"];
UIImageView * imageView1 = [[UIImageView alloc]initWithImage:image1];
imageView1.frame = CGRectMake(50, 100, 300, 60);
[self.view addSubview:imageView1];
    
UIImage * image2 = [UIImage imageNamed:@"image"];
image2 = [image2 resizableImageWithCapInsets:UIEdgeInsetsMake(1, 1, 1, 1)];
UIImageView * imageView = [[UIImageView alloc]initWithImage:image2];
imageView.frame = CGRectMake(50, 200, 300, 60);
[self.view addSubview:imageView];

看完下面的效果圖我們說注意點:(左邊是原圖,右邊是拉伸過的)

常用開發技巧系列(三) 常用開發技巧系列(三)

注意點:上面的方法有一點需要注意,這個方法默認使用的拉伸模式是區域復制的,它的意思是把要賦值的區域進行賦值,直到滿足顯示區域!

最後一個方法需要注意的就是後面的枚舉,你可以把上面的方法用這個代替了,看看效果,體會一下這個復制和漸變的區別!

/* 
     UIImage will implement the resizing mode the fastest way possible while
     retaining the desired visual appearance.
     Note that if an image's resizable area is one point then UIImageResizingModeTile
     is visually indistinguishable from UIImageResizingModeStretch.
     
     typedef NS_ENUM(NSInteger, UIImageResizingMode) {
     
        UIImageResizingModeTile,      // 把要拉伸的區域進行復制
        UIImageResizingModeStretch,   // 把要拉伸的區域進行漸變拉伸
     }; 
 */

以上就是這篇文章的全部內容了,希望大家能夠喜歡。

[db:作者簡介][db:原文翻譯及解析]

【常用開發技巧系列(三)】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved