ZPCategory

c4ibD3發表於2019-04-08

ZPCategory

目錄


  1. 巨集檔案
  2. NSString
  3. NSDate
  4. NSTimer
  5. NSDictionary
  6. UITextField
  7. UITextView
  8. UIButton
  9. UIImage
  10. UIViewController

巨集檔案

這個檔案中主要有以下幾個功能:

  1. 開發環境和正式環境的配置;
  2. 專案中整合的第三方的配置;
  3. RGB顏色;
  4. 弱引用self;
  5. 螢幕寬&高;
  6. 狀態列&Tabbar&SafeArea的數值;
  7. 裝置的判斷;

NSString

字串寬度&&高度

1.根據字型&高度,獲取字串的寬度(沒有行高)

- (float)widthWithFont:(UIFont *)font height:(float)height;
複製程式碼

2.根據字型&寬度,獲取字串的高度(沒有行高)

- (float)heightWithFont:(UIFont *)font width:(float)width;
複製程式碼

3.根據字型&寬度&行高,獲取字串改的高度;

- (float)heightWithFont:(UIFont *)font width:(float)width lineSpacing:(float)lineSpacing;
複製程式碼

4.根據字型&寬度&行高,獲取字串的Size;

- (CGSize)sizeWithFont:(UIFont *)font width:(float)width lineSpacing:(float)lineSpacing;
複製程式碼

字串 正規表示式

1.判斷是不是手機號

- (BOOL)isValidateMobile;
複製程式碼

2.判斷是不是固定電話

- (BOOL)isValidatePhone;
複製程式碼

3.判斷是不是客服電話

- (BOOL)is400Phone;
複製程式碼

4.判斷是不是身份證

- (BOOL)isIdCard;
複製程式碼

資料型別額判斷

1.是否是正整數

- (BOOL)isPositiveInteger;
複製程式碼

2.是否是浮點數

- (BOOL)isFloat;
複製程式碼

3.檢查輸入字串是否只由英文字母和數字組成

- (BOOL)isNumberOrLetter;
複製程式碼

4.檢查輸入字串是否只由漢字和英文字母組成

- (BOOL)isChineseOrLetter;
複製程式碼

5.是否為空字串

- (BOOL)isBlankString;
複製程式碼

NSString->NSAttributedString

1.NSString->NSAttributedString 帶有行高屬性

- (NSAttributedString *)toAttributeStringWithLineSpacing:(float)lineSpacing;
複製程式碼

NSString 計算位元組長度

/**
 計算字串的位元組長度
 * 中文 = 2
 * 英文或者數字 = 1
 * 表情 = 4
 
 @return NSUInteger
 */
- (NSUInteger)charactorNumber;

/**
 根據不同的編碼方式計算位元組長度
 
 @param encoding 編碼方式
 @return NSUInteger
 */
- (NSUInteger)charactorNumberWithEncoding:(NSStringEncoding)encoding;

/**
 calulate the number of charactor.
 1 Chinese(not including Chinese mark) = 2
 1 other charactor = 1
 
 @return NSUInteger
 */
- (NSUInteger)charactorNumberForChineseSpecial;
複製程式碼

這是我從github的一位仁兄哪裡收集到的LXKit 想要了解的可以點選進去詳細瞭解。

字串加密

1.MD5

- (NSString *)md5;
複製程式碼

2.SHA1

- (NSString *)SHA1;
複製程式碼

字串過濾

1.去除兩端空格和回車

- (NSString *)trim;
複製程式碼

2.僅去除兩端空格

- (NSString *)trimOnlyWhitespace;
複製程式碼

3.去除html格式

+ (NSString *)filterHtml:(NSString *)html;
複製程式碼

根據圖片名字返回圖片

1.根據圖片名字返回圖片

- (UIImage *)toImage;
複製程式碼

NSDate

1.NSDate -> NSString

- (NSString *)formatString:(NSString *)dateFormat;
複製程式碼

2.根據unix時間戳構造NSDate

+ (NSDate *)dateWithUnixTime:(double)unixtime;
複製程式碼

3.將時間轉化為0秒模式

+ (NSDate *)changeDateToZeroMinutDate:(NSDate *)date;
複製程式碼

4.獲得指定月份的第一天和最後一天

+ (NSArray *)getFirstAndLastDayOfThisMonthWithNsDate:(NSDate *)date;
複製程式碼

NSTimer

1.用block的方式穿件定時器

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)timeInterval block:(void (^)(void))block repeat:(BOOL)repeat;
複製程式碼

NSDictionary

資料型別的Get

1.設定一個BOOL值

- (BOOL)boolForKey:(NSString *)key;
複製程式碼

2.設定一個NSInteger值

- (NSInteger)integerForKey:(NSString *)key;
複製程式碼

3.設定一個int值

- (int)intForKey:(NSString *)key;
複製程式碼

4.設定一個double值

- (double)doubleForKey:(NSString *)key;
複製程式碼

5.設定一個float值

- (float)floatForKey:(NSString *)key;
複製程式碼

6.設定一個long long值

- (long long)longLongForKey:(NSString *)key;
複製程式碼

7.設定一個unsigned long long值

- (unsigned long long)unsignedLongLongForKey:(NSString *)key;
複製程式碼

8.設定一個NSString值

- (NSString *)stringForKey:(NSString *)key;
複製程式碼

9.設定一個NSArray值

- (NSArray *)arrayForKey:(NSString *)key;
複製程式碼

10.value為空時,不set此key

- (void)safeValue:(id)value forKey:(NSString *)key;
複製程式碼

UITextField

最大長度和只可以輸入數字的屬性新增

/**
 最大長度
 */
@property (nonatomic, assign) NSInteger maxLength;

/**
 是否只可以輸入數字
 */
@property (nonatomic, assign) BOOL canOnlyInputNumber;
複製程式碼

LeftView

1.設定leftview為圖片

/**
 *  設定leftview為圖片
 *
 *  @param imageName 圖片名稱
 */
- (void)setLeftViewWithImageName:(NSString *)imageName;
複製程式碼

2.設定leftView為文字

/**
 *  設定leftView為文字
 *
 */
- (void)setLeftViewWithText:(NSString *)text;
複製程式碼

3.設定leftView為文字

/**
 *  設定leftView為文字
 *
 *  @param text  文字
 *  @param minWidth 最小寬度
 */
- (void)setLeftViewWithText:(NSString *)text minWidth:(CGFloat)minWidth;
複製程式碼

4.設定leftView為文字

/**
 *  設定leftView為文字
 *
 *  @param text  文字
 *  @param minWidth 最小寬度
 *  @param color 佔位文字顏色
 */
- (void)setLeftViewWithText:(NSString *)text minWidth:(CGFloat)minWidth color:(UIColor *)color;
複製程式碼

RightView

1.設定rightView為文字

/**
 *  設定rightView為文字
 *
 *  @param text 文字
 */
- (void)setRightViewWithText:(NSString *)text;
複製程式碼

2.設定rightView為圖片

/**
 *  設定rightView為圖片
 *
 *  @param imageName 圖片名稱
 */
- (void)setRightViewWithImageName:(NSString *)imageName;
複製程式碼

3.設定rightView為button

/**
 *  設定rightView為button
 *
 *  @param imageName 圖片名稱
 */
- (void)setRightViewButtonWithImageName:(NSString *)imageName taget:(id)taget selector:(SEL)selector;
複製程式碼

Padding

1.設定UITextField左側內邊距

/**
 *  設定UITextField左側內邊距
 *
 *  @param padding 距離
 */
- (void)setPaddingLeftSpace:(float)padding;
複製程式碼

2.設定UITextField右側內邊距

/**
 *  設定UITextField右側內邊距
 *
 *  @param padding 距離
 */
- (void)setPaddingRightSpace:(float)padding;
複製程式碼

UI顯示

1.設定底部邊框

/**
 *  設定底部邊框
 *
 *  @param lineColor 邊框顏色
 */
- (void)setBottomBorderLineWithColor:(UIColor *)lineColor;
複製程式碼

2.設定placeholder的顏色

/**
 *  設定placeholder的顏色
 *
 */
- (void)setPlaceholderColor:(UIColor *)color;
複製程式碼

3.設定下劃線出去左邊的文字

/**
 *  設定下劃線出去左邊的文字
 */
- (void)setLeftViewWithText:(NSString *)text minWidth:(CGFloat)minWidth withOutTextBottomLineColor:(UIColor *)color;
複製程式碼

UITextView

增加 placeHolder & placeHolderFont 屬性

@property (nonatomic, copy) NSString *placeHolder;

@property (nonatomic, strong) UIFont *placeHolderFont;
複製程式碼

UButton

點選方式換成block方式

/**
 *  UIButton+Block
 *
 *  @param controlEvent 觸控事件
 *  @param action 執行的方法
 */
- (void)handleControlEvent:(UIControlEvents)controlEvent withBlock:(ActionBlock)action;
複製程式碼

UIImage

返回相片的主要顏色

/**
 返回相片的主要顏色

 @param image 圖片
 @return 返回的顏色色值
 */
+ (UIColor*)mostColor:(UIImage *)image;
複製程式碼

UIViewController

NavigationBar

1.設定左側Navigationbar為“返回”(使用backBarButtonItem)

/**
 *  設定左側Navigationbar為“返回”(使用backBarButtonItem)
 */
- (void)setLeftNavigationBarToBack;
複製程式碼

2.設定左側Navigationbar為“返回”(使用leftbarbutton)

/**
 *  設定左側Navigationbar為“返回”(使用leftbarbutton)
 *
 *  @param block 點選時執行的block程式碼
 */
- (void)setLeftNavigationBarToBackWithBlock:(void (^)(void))block;
複製程式碼

3.為左側後退Navigationbar增加確認提示框

/**
 *  為左側後退Navigationbar增加確認提示框
 */
- (void)setLeftNavigationBarToBackWithConfirmDialog;
複製程式碼

4.設定NavigationBar(文字)

/**
 *  設定NavigationBar(文字)
 *
 *  @param position 位置
 *  @param text     文字
 *  @param block    點選後執行的程式碼
 */
- (void)setNavigationBar:(NavigationBarPosition)position withText:(NSString *)text touched:(void (^)(void))block;
複製程式碼

5.設定NavigationBar(圖片)

/**
 *  設定NavigationBar(圖片)
 *
 *  @param position  位置
 *  @param imageName 圖片名稱
 *  @param block     點選後執行的程式碼
 */
- (void)setNavigationBar:(NavigationBarPosition)position withImageName:(NSString *)imageName touched:(void (^)(void))block;
複製程式碼

6.設定NavigationBar(圖片)

/**
 *  設定NavigationBar(圖片)
 *
 *  @param position  位置
 *  @param imageName 圖片名稱
 *  @param block     點選後執行的程式碼
 */
- (void)setNavigationBar:(NavigationBarPosition)position withImageName:(NSString *)imageName spacing:(NSInteger)spacing touched:(void (^)(void))block;
複製程式碼

7.設定NavigationBar(文字)

/**
 *  設定NavigationBar(文字)
 *
 *  @param position 位置
 *  @param text     文字
 *  @param color    文字顏色
 *  @param block    點選後執行的程式碼
 */
- (void)setNavigationBar:(NavigationBarPosition)position withText:(NSString *)text withColor:(UIColor *)color touched:(void (^)(void))block;
複製程式碼

8.設定NavigationBar(文字)

/**
 *  設定NavigationBar(文字)
 *
 *  @param position 位置
 *  @param text     文字
 *  @param color    文字顏色
 *  @param font     字型
 *  @param block    點選後執行的程式碼
 */
- (void)setNavigationBar:(NavigationBarPosition)position withText:(NSString *)text withColor:(UIColor *)color withFont:(UIFont *)font touched:(void (^)(void))block;
複製程式碼

9.設定NavigationBar隱藏或顯示

/**
 *  設定NavigationBar隱藏或顯示
 *
 *  @param position 位置
 *  @param hidden   YES:隱藏 NO:顯示
 */
- (void)hiddenNavigationBar:(NavigationBarPosition)position hidden:(BOOL)hidden;
複製程式碼

10.跳轉到指定的ViewController

/**
 *  跳轉到指定的ViewController
 *
 *  @param viewControllerClass 控制器型別
 */
- (void)popToViewController:(Class)viewControllerClass;
複製程式碼

11.NavigationController裡上一個ViewController

/**
 *  NavigationController裡上一個ViewController
 *
 */
- (UIViewController *)previosViewController;
複製程式碼

12.移除當前NavigationController裡ViewController的上一個ViewController

/**
 *  移除當前NavigationController裡ViewController的上一個ViewController
 */
- (void)removePreviosViewControllerInNavigationControllers;
複製程式碼

13.新增多個按鈕時

/**
 *  新增多個按鈕時
 *
 *  @param position 位置
 *  @param array    buttonImageNameAndButtonTypeArray
 *  @param target   目標
 *  @param selector 響應方法
 */

- (void)setNavigationBar:(NavigationBarPosition)position withImageNameAndButtonTypeArray:(NSArray *)array target:(id)target selectors:(SEL)selector;
複製程式碼

14.移除navigationbutton

/**
 *  移除navigationbutton
 *
 *  @param position 位置
 */
- (void)removeNavigationBarBar:(NavigationBarPosition)position;
複製程式碼

StoryBoard

1.從storyboard中初始化ViewController

/**
 *  從storyboard中初始化ViewController
 *
 *  @param storyBoardName storyboard名稱
 *  @param identifier     ViewController識別符號
 *
 *  @return ViewController例項
 */
+ (instancetype)viewControllerFromStoryBoard:(NSString *)storyBoardName withIdentifier:(NSString *)identifier;
複製程式碼

傳送門

github.com/cAibDe/ZPCa…