iOS Tips

開(kāi)發(fā)中 可能會(huì)用到的一些 方法

關(guān)于圖片處理(UIImage)

將顏色轉(zhuǎn)化為圖片

 - (UIImage *)createImageWithColor:(UIColor *) color
   {
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
   }

修改圖片大小_ OC

   - (UIImage *)scaleImage:(UIImage *)img ToSize:(CGSize)itemSize
{
    UIImage *i;
    // 創(chuàng)建一個(gè)bitmap的context,并把它設(shè)置成為當(dāng)前正在使用的context
    UIGraphicsBeginImageContext(itemSize);
    CGRect imageRect=CGRectMake(0, 0, itemSize.width, itemSize.height);
    // 繪制改變大小的圖片
    [img drawInRect:imageRect];
    // 從當(dāng)前context中創(chuàng)建一個(gè)改變大小后的圖片
    i=UIGraphicsGetImageFromCurrentImageContext();
    // 使當(dāng)前的context出堆棧
     UIGraphicsEndImageContext();
    // 返回新的改變大小后的圖片
    return i;
}

修改圖片大小-Swift

func scaleImage(img:UIImage,itemSize:CGSize)->UIImage
{
    var  images=UIImage()
    // 創(chuàng)建一個(gè)bitmap的context,并把它設(shè)置成為當(dāng)前正在使用的context
        UIGraphicsBeginImageContext(itemSize)
     // 繪制改變大小的圖片
     images.drawInRect(CGRectMake(0, 0, itemSize.width, itemSize.height))
        // 從當(dāng)前context中創(chuàng)建一個(gè)改變大小后的圖片
        images = UIGraphicsGetImageFromCurrentImageContext()
        // 使當(dāng)前的context出堆棧
        UIGraphicsEndImageContext()
        // 返回新的改變大小后的圖片
    
    return images
}

裁剪圖片圓角_Swift

UIImage的方法
func clipImgRectCorner(direction: UIRectCorner, cornerRadius: CGFloat)->UIImage{
    
    // 1.開(kāi)啟位圖上下文辟躏,跟圖片尺寸一樣大
    UIGraphicsBeginImageContextWithOptions(self.size, false, 0);
    let cornerSize = CGSizeMake(cornerRadius, cornerRadius)
    // 2.1創(chuàng)建圓形的路徑
    let path = UIBezierPath(roundedRect:CGRectMake(0, 0,size.width,size.height), byRoundingCorners: direction, cornerRadii: cornerSize)
    // 2.2把路徑設(shè)置為裁剪區(qū)域
    path.addClip()
    // 3.繪制圖片
    self.drawAtPoint(CGPointZero);
    // 4.從上下文中獲取圖片
    let clipImage = UIGraphicsGetImageFromCurrentImageContext()
    // 5.關(guān)閉上下文
    UIGraphicsEndImageContext();
    
return clipImage
}

裁剪圖片圓角_OC

- (UIImage *)clipImgRectCorner:(UIRectCorner)direction cornerRadius:(CGFloat) cornerRadius{

// 1.開(kāi)啟位圖上下文别智,跟圖片尺寸一樣大
UIGraphicsBeginImageContextWithOptions(self.size, false, 0);
CGSize cornerSize = CGSizeMake(cornerRadius, cornerRadius);
NSLog(@"%.2f",self.size.height);
// 2.1 創(chuàng)建圓形的路徑
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0,self.size.width,self.size.height) byRoundingCorners:direction cornerRadii:cornerSize];
// 2.2把路徑設(shè)置為裁剪區(qū)域
[path addClip];
// 3.繪制圖片
[self drawAtPoint:CGPointZero];
// 4.從上下文中獲取圖片
UIImage * clipImage = UIGraphicsGetImageFromCurrentImageContext();
// 5.關(guān)閉上下文
UIGraphicsEndImageContext();
return clipImage;
}


關(guān)于字符串(NSString)

去掉空格或換行

  - (NSString *)removeSpaceAndNewline:(NSString *)str
  {
        NSString *temp = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
        temp = [temp stringByReplacingOccurrencesOfString:@"\r" withString:@""];
        temp = [temp stringByReplacingOccurrencesOfString:@"\n" withString:@""];
        return temp;
  }

判斷當(dāng)前url是否合法

- (BOOL)isCurrentURLAvaliable:(NSString *)urlstring
{
    if (![self isCurrentStringAvailable:urlstring]) {
        return NO;
    }
    NSString * urlFormat = @"^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",urlFormat];
    if ([predicate evaluateWithObject:urlstring]){
        return YES;
    }
    return NO;
}

驗(yàn)證郵箱是否合法

-  (BOOL) isEmail: (NSString *)emaile
 {
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:emaile];
}

判斷一個(gè)字符串是否可用

- (BOOL)isCurrentStringAvailable:(NSString *)string
{
    BOOL available = NO;
    if (string && [string isKindOfClass:[NSString class]] && (![string isEqualToString:@""]) && (![string isEqual:[NSNull null]]) && ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] > 0)){
        available = YES;
    }
    return available;
}

判斷一個(gè)字符串是否是整型數(shù)字

- (BOOL)isPureInt:(NSString *)string
{
    BOOL isPure;
    NSScanner* scan = [NSScanner scannerWithString:string];
    int val;
    isPure = [scan scanInt:&val] && [scan isAtEnd];
    return isPure;
}

判斷一個(gè)字符串是否是浮點(diǎn)型數(shù)字

- (BOOL)isPureFloat:(NSString *)string
{
    BOOL isPure;
    NSScanner* scan = [NSScanner scannerWithString:string];
    float val;
    isPure = [scan scanFloat:&val] && [scan isAtEnd];
    return isPure;
}

判斷當(dāng)前手機(jī)號(hào)是否正確

- (BOOL)isCurrentMobileNumAvailable:(NSString *)mobileStr
{
    //字符串是否可用 在上面
    if (![self isCurrentStringAvailable:mobileStr]){
        return NO;
    }

    if ([mobileStr length]!= 11){
        return NO;
    }
     NSString *ALL = @"^13[\\d]{9}$|^14[5,7]{1}\\d{8}$|^15[^4]{1}\\d{8}$|^17[0,3,5,6,7,8]{1}\\d{8}$|^18[\\d]{9}|^19[8,9]\\d{8}|^16[6]\\d{8}$";

     NSPredicate *regextestall = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", ALL];

    return [regextestall evaluateWithObject:mobileStr];
}

判斷一個(gè)字符串是否包含中文

-(BOOL)isCurrentIncludeChinese:(NSString *)str
{
    for(int i=0; i< [str length];i++)
    {
        int a = [str characterAtIndex:i];
        if( a >=0x4e00 && a <= 0x9fff)
        {
            return YES;
        }
    }
    return NO;
}

判斷是否全部為中文

-(BOOL)isCurrentIsChinese:(NSString *)str
{
    for(int i=0; i< [str length];i++)
    {
        int a = [str characterAtIndex:i];
        if( a >= 0x4e00 && a <= 0x9fff)
        {
          
        }else{
          return  NO;
        }
    
    }
    return YES;
}

UILable 相關(guān)

根據(jù)字體大小 和 高度 計(jì)算寬度

/**
 @prame content 內(nèi)容
 @prame fontSize 字體大小
 @prame height 高度
 @return 寬度
 */
+ (CGFloat)calculateLableWidth:(NSString *)content
                      fontSize:(NSUInteger)fontSize
                        height:(CGFloat)height{
    
    NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]};
    
    CGRect rect = [content boundingRectWithSize:CGSizeMake(0, height)
                                        options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                     attributes:dic context:nil];
    return rect.size.width;
}

根據(jù)字體大小 和 寬度 計(jì)算高度

/**
 @prame content 內(nèi)容
 @prame fontSize 字體大小
 @prame height 寬度
 @return 高度
 */
+ (CGFloat)calculateLableHeight:(NSString *)content
                       fontSize:(NSInteger)fontSize
                          width:(CGFloat)width{
    
    NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]};
    
    CGRect rect = [content boundingRectWithSize:CGSizeMake(width, 0)
                                        options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                     attributes:dic context:nil];
    return rect.size.height;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蝙云,隨后出現(xiàn)的幾起案子降铸,更是在濱河造成了極大的恐慌任斋,老刑警劉巖萝勤,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件露筒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡敌卓,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)伶氢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)趟径,“玉大人,你說(shuō)我怎么就攤上這事癣防∥锨桑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蕾盯,是天一觀的道長(zhǎng)幕屹。 經(jīng)常有香客問(wèn)我,道長(zhǎng)级遭,這世上最難降的妖魔是什么望拖? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮挫鸽,結(jié)果婚禮上说敏,老公的妹妹穿的比我還像新娘。我一直安慰自己丢郊,他們只是感情好盔沫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著枫匾,像睡著了一般架诞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上干茉,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天谴忧,我揣著相機(jī)與錄音,去河邊找鬼等脂。 笑死俏蛮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的上遥。 我是一名探鬼主播搏屑,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼粉楚!你這毒婦竟也來(lái)了辣恋?” 一聲冷哼從身側(cè)響起亮垫,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伟骨,沒(méi)想到半個(gè)月后饮潦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡携狭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年继蜡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逛腿。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稀并,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出单默,到底是詐尸還是另有隱情碘举,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布搁廓,位于F島的核電站引颈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏境蜕。R本人自食惡果不足惜蝙场,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望汽摹。 院中可真熱鬧李丰,春花似錦、人聲如沸逼泣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拉庶。三九已至嗜憔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氏仗,已是汗流浹背吉捶。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留皆尔,地道東北人呐舔。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像慷蠕,于是被迫代替她去往敵國(guó)和親珊拼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1流炕、通過(guò)CocoaPods安裝項(xiàng)目名稱(chēng)項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明先生_X自主閱讀 15,980評(píng)論 3 119
  • 憶少年之夏日(平水韻) 何水長(zhǎng)(武都) 春去花蔫枝綠蔭澎现, 荊叢蔥盛簇團(tuán)菁仅胞。 蟈鳴田間尋腸食, 蟬叫林梢報(bào)暑情剑辫。 家...
    水天滄浪閱讀 150評(píng)論 0 1
  • 【用心生活干旧,順手拍美】——我是朱子先生。 2018妹蔽,我將會(huì)繼續(xù)分享攝影技巧椎眯,想學(xué)習(xí)更多攝影知識(shí),想看更多美圖讹开,就來(lái)...
    朱子先生的攝影思維閱讀 206評(píng)論 0 2
  • 鏈接地址: *http://www.reibang.com/p/4fa8c4eb1316?hmsr=toutiao...
    奮斗的郅博閱讀 165評(píng)論 0 0
  • 長(zhǎng)痘了盅视,愁的買(mǎi)親戚的兩盒面膜,下次試試悅詩(shī)風(fēng)吟吧 陳翔出軌江鎧同坐實(shí)旦万,我激動(dòng)的不得了。 收藏第三人稱(chēng)一首好歌 旅行...
    次次次就知道吃閱讀 164評(píng)論 0 1