Files
mier_ios/SweetParty/Expand/YBKit/FZYControl.m

762 lines
32 KiB
Mathematica
Raw Normal View History

2025-08-11 10:43:19 +08:00
//
// FZYControl.m
//
// Created by on 2016/8/27.
// Copyright © 2018 . All rights reserved.
//
#import "FZYControl.h"
@implementation FZYControl
#pragma mark ---- create Label ----------
+ (UILabel *)createLabelFromFont:(UIFont *)font textColor:(UIColor *)color {
UILabel *label = [[UILabel alloc]init];
label.font = font;
label.textColor = color;
return label;
}
+ (UILabel *)createLabelFromFont:(UIFont *)font textColor:(UIColor *)color textAlignment:(NSTextAlignment)textAlignment {
UILabel *label = [FZYControl createLabelFromFont:font textColor:color];
label.textAlignment = textAlignment;
return label;
}
+ (UILabel *)createLabelFromFont:(UIFont *)font textColor:(UIColor *)color numberOfLines:(NSInteger)numberOfLines {
UILabel *label = [FZYControl createLabelFromFont:font textColor:color];
label.numberOfLines = numberOfLines;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame backgoudColor:(UIColor *)color {
UILabel *label = [[UILabel alloc]initWithFrame:frame];
label.backgroundColor = color;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame backgoudColor:(UIColor *)color tag:(NSInteger)tag {
UILabel *label = [self createLabelWithFrame:frame backgoudColor:color];
label.tag = tag;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame Font:(UIFont *)font Text:(NSString *)text
{
UILabel *label = [[UILabel alloc]initWithFrame:frame];
//
label.numberOfLines = 0;
//
label.textAlignment = NSTextAlignmentLeft;
label.backgroundColor = [UIColor clearColor];
label.font = font;
//
label.lineBreakMode = NSLineBreakByWordWrapping;
//
label.textColor =COLOR16(0xffffff);
//~
label.adjustsFontSizeToFitWidth = YES;
label.text = text;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame Font:(UIFont *)font Text:(NSString *)text color:(UIColor *)color
{
UILabel *label = [[UILabel alloc]initWithFrame:frame];
label.font = font;
//
// label.lineBreakMode=NSLineBreakByWordWrapping;
//
label.textColor = color;
//~
label.text = text;
label.numberOfLines = 0;
return label;
}
+ (UILabel *)createLabelWithframe:(CGRect)frame Font:(UIFont *)font Text:(NSString *)text color:(UIColor *)color {
UILabel *label = [[UILabel alloc]initWithFrame:frame];
label.font = font;
//
// label.lineBreakMode=NSLineBreakByWordWrapping;
//
label.textColor = color;
//~
label.text = text;
label.numberOfLines = 0;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame
Font:(UIFont *)font
Text:(NSString *)text
color:(UIColor *)color
tag:(NSInteger)tag {
UILabel *label = [FZYControl createLabelWithFrame:frame Font:font Text:text color:color];
label.tag = tag;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame
Font:(UIFont *)font
Text:(NSString *)text
color:(UIColor *)color
textAlignment:(NSTextAlignment)alignment {
UILabel *label = [self createLabelWithFrame:frame Font:font Text:text color:color];
label.textAlignment = alignment;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame
Font:(UIFont *)font
Text:(NSString *)text
color:(UIColor *)color
textAlignment:(NSTextAlignment)alignment
backgroundColor:(UIColor *)backgroundColor {
UILabel *label = [self createLabelWithFrame:frame Font:font Text:text color:color textAlignment:alignment];
label.backgroundColor = backgroundColor;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame
Font:(UIFont *)font
Text:(NSString *)text
color:(UIColor *)color
textAlignment:(NSTextAlignment)alignment
backgroundColor:(UIColor *)backgroundColor
cornerRadius:(CGFloat)cornerRadius {
UILabel *label = [self createLabelWithFrame:frame Font:font Text:text color:color textAlignment:alignment backgroundColor:backgroundColor];
label.layer.cornerRadius = cornerRadius;
label.layer.masksToBounds = YES;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame
Font:(UIFont *)font
Text:(NSString *)text
color:(UIColor *)color
textAlignment:(NSTextAlignment)alignment
numberOfLines:(NSInteger)numberOfLines {
UILabel *label = [self createLabelWithFrame:frame Font:font Text:text color:color textAlignment:alignment];
label.numberOfLines = numberOfLines;
return label;
}
+ (UILabel *)createLabelWithFrame:(CGRect)frame
Font:(UIFont *)font
Text:(NSString *)text
color:(UIColor *)color
textAlignment:(NSTextAlignment)alignment
numberOfLines:(NSInteger)numberOfLines
tag:(NSInteger)tag {
UILabel *label = [self createLabelWithFrame:frame Font:font Text:text color:color textAlignment:alignment numberOfLines:numberOfLines];
label.tag = tag;
return label;
}
#pragma mark ---- create UIButton ----------
+ (UIButton *)createButtonWithFrame:(CGRect)frame
Target:(id)target
Action:(SEL)action
Title:(NSString *)title
titlColor:(UIColor *)color
font:(UIFont *)textFont
tag:(NSInteger)tag {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = frame;
button.tag = tag;
button.titleLabel.font = textFont;
[button setTitle:title forState:UIControlStateNormal];
[button setTitleColor:color forState:UIControlStateNormal];
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
return button;
}
/** action title textFont backgroudColor */
+ (UIButton *)createButtonWithFrame:(CGRect)frame
Target:(id)target
Action:(SEL)action
Title:(NSString *)title
titlColor:(UIColor *)color
font:(UIFont *)textFont
tag:(NSInteger)tag
backgroundColor:(UIColor *)backgroudColor {
UIButton *button = [self createButtonWithFrame:frame Target:target Action:action Title:title titlColor:color font:textFont tag:tag];
button.backgroundColor = backgroudColor;
return button;
}
+ (UIButton *)createButtonWithFrame:(CGRect)frame buttonTitleFont:(UIFont *)buttonTitleFont buttonTitle:(NSString *)buttonTitle {
UIButton *button = [[UIButton alloc]initWithFrame:frame];
button.titleLabel.font = buttonTitleFont;
[button setTitle:buttonTitle forState:(UIControlStateNormal)];
return button;
}
/** action imageName title */
+ (UIButton *)createButtonWithFrame:(CGRect)frame
ImageName:(NSString *)imageName
Target:(id)target
Action:(SEL)action
font:(UIFont *)font
Title:(NSString *)title
{
UIButton *button = [self createButtonWithFrame:frame ImageName:imageName selectedImage:imageName Target:target Action:action Title:title tag:0];
button.titleLabel.font = font;
return button;
}
/** imageName selected title selectedTitle color selectedColor action font bgColor*/
+ (UIButton *)createButtonWithFrame:(CGRect)frame
ImageName:(NSString *)imageName
selectedImage:(NSString *)selected
Title:(NSString *)title
selectedTitle:(NSString *)selectedTitle
titleColor:(UIColor *)color
selectedTitleColor:(UIColor *)selectedColor
Target:(id)target
Action:(SEL)action
titleFont:(UIFont *)font
backgroundColor:(UIColor *)bgColor
tag:(NSInteger)tag {
UIButton *button = [self createButtonWithFrame:frame ImageName:imageName selectedImage:selected Target:target Action:action Title:nil tag:tag];
[button setTitle:title forState:(UIControlStateNormal)];
[button setTitle:selectedTitle forState:(UIControlStateSelected)];
[button setTitleColor:color forState:(UIControlStateNormal)];
[button setTitleColor:selectedColor forState:(UIControlStateSelected)];
button.titleLabel.font = font;
button.backgroundColor = bgColor;
return button;
}
/** imageName selected */
+ (UIButton *)createButtonWithFrame:(CGRect)frame
ImageName:(NSString *)imageName
selectedImage:(NSString *)selected
Target:(id)target
Action:(SEL)action
Title:(NSString *)title
tag:(NSInteger)tag {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = frame;
button.tag = tag;
[button setTitleColor:UIColor.blackColor forState:(UIControlStateNormal)];
[button setTitle:title forState:UIControlStateNormal];
//使
if (imageName.length) {
[button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:selected] forState:UIControlStateSelected];
}
button.titleLabel.textAlignment = NSTextAlignmentCenter;
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
return button;
}
+ (UIButton *)createButtonWithFrame:(CGRect)frame
backgroundImageName:(NSString *)imageName
selectedImage:(NSString *)selected
Target:(id)target
Action:(SEL)action
Title:(NSString *)title
tag:(NSInteger)tag {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = frame;
button.tag = tag;
[button setTitleColor:UIColor.blackColor forState:(UIControlStateNormal)];
[button setTitle:title forState:UIControlStateNormal];
//使
if (imageName.length) {
[button setBackgroundImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:selected] forState:UIControlStateSelected];
}
button.titleLabel.textAlignment = NSTextAlignmentCenter;
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
return button;
}
/** font title titleColor backgorudColor */
+ (UIButton *)createButtonWithFrame:(CGRect)frame
buttonTitleFont:(UIFont *)font
buttonTitle:(NSString *)title
buttonTitleColor:(UIColor *)titleColor
backgorudColor:(UIColor *)backgorudColor {
UIButton *button = [self createButtonWithFrame:frame buttonTitleFont:font buttonTitle:title];
[button setTitleColor:titleColor forState:(UIControlStateNormal)];
button.backgroundColor = backgorudColor;
return button;
}
/** font title titleColor backgorudColor borderColor borderWidth*/
+ (UIButton *)createButtonWithFrame:(CGRect)frame
buttonTitleFont:(UIFont *)font
buttonTitle:(NSString *)title
buttonTitleColor:(UIColor *)titleColor
backgorudColor:(UIColor *)backgorudColor
borderColor:(CGColorRef)borderColor
borderWidth:(CGFloat)borderWidth
action:(SEL)action
target:(id)target {
UIButton *button = [self createButtonWithFrame:frame buttonTitleFont:font buttonTitle:title buttonTitleColor:titleColor backgorudColor:backgorudColor];
button.layer.borderColor = borderColor;
button.layer.borderWidth = borderWidth;
[button addTarget:target action:action forControlEvents:(UIControlEventTouchUpInside)];
return button;
}
+ (UIButton *)createButtonWithFrame:(CGRect)frame {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = frame;
return button;
}
+ (UIButton *)createButtonWithFrame:(CGRect)frame
buttonImage:(NSString *)imageName {
UIButton *button = [self createButtonWithFrame:frame];
[button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
return button;
}
+ (UIButton *)createButtonWithFrame:(CGRect)frame buttonType:(UIButtonType)type buttonImage:(NSString *)imageName Target:(id)target Action:(SEL)action {
UIButton *button = [self createButtonWithFrame:frame];
[button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
[button addTarget:target action:action forControlEvents:(UIControlEventTouchUpInside)];
return button;
}
#pragma mark ----- tableView -----
+ (UITableView *)createTableViewWithFrame:(CGRect)frame
style:(UITableViewStyle)style
dataSource:(id<UITableViewDataSource>)dataSource
delegate:(id<UITableViewDelegate>)delegate {
UITableView *tableView = [[UITableView alloc]initWithFrame:frame style:style];
tableView.dataSource = dataSource;
tableView.delegate = delegate;
return tableView;
}
+ (UITableView *)createTableViewWithFrame:(CGRect)frame style:(UITableViewStyle)style
backgroudColor:(UIColor *)backgroudColor
dataSource:(id<UITableViewDataSource>)dataSource
delegate:(id<UITableViewDelegate>)delegate {
UITableView *tableView = [self createTableViewWithFrame:frame style:style dataSource:dataSource delegate:delegate];
tableView.backgroundColor = backgroudColor;
return tableView;
}
+ (UITableView *)createTableViewWithFrame:(CGRect)frame style:(UITableViewStyle)style
backgroudColor:(UIColor *)backgroudColor
dataSource:(id<UITableViewDataSource>)dataSource
delegate:(id<UITableViewDelegate>)delegate
separatorStyle:(UITableViewCellSeparatorStyle)separatorStyle {
UITableView *tableView = [self createTableViewWithFrame:frame style:style backgroudColor:backgroudColor dataSource:dataSource delegate:delegate];
tableView.separatorStyle = separatorStyle;
return tableView;
}
#pragma mark ----- UICollectionView -----
+ (UICollectionView *)createCollectionViewFromFrame:(CGRect)frame
itmeSize:(CGSize)itmeSize
sectionInset:(UIEdgeInsets)sectionInset
minimumLineSpacing:(CGFloat)minimumLineSpacing
minimumInteritemSpacing:(CGFloat)minimumInteritemSpacing
scrollDirection:(UICollectionViewScrollDirection)scrollDirection
dataSource:(id<UICollectionViewDataSource>)dataSource
delegate:(id<UICollectionViewDelegate>)delegate
backgroudColor:(UIColor *)backgroudColor {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.itemSize = itmeSize;
layout.sectionInset = sectionInset;
layout.minimumLineSpacing = minimumLineSpacing;
layout.minimumInteritemSpacing = minimumInteritemSpacing;
layout.scrollDirection = scrollDirection;
UICollectionView *view = [self createCollectionViewFromFrame:frame collectionViewLayout:layout dataSource:dataSource delegate:delegate];
view.backgroundColor = backgroudColor;
[view registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"item"];
return view;
}
+ (UICollectionView *)createCollectionViewFromFrame:(CGRect)frame
itmeSize:(CGSize)itmeSize
sectionInset:(UIEdgeInsets)sectionInset
minimumLineSpacing:(CGFloat)minimumLineSpacing
minimumInteritemSpacing:(CGFloat)minimumInteritemSpacing
scrollDirection:(UICollectionViewScrollDirection)scrollDirection
dataSource:(id<UICollectionViewDataSource>)dataSource
delegate:(id<UICollectionViewDelegate>)delegate
backgroudColor:(UIColor *)backgroudColor
headerReuseIdentifier:(NSString *)headerReuseIdentifier
footerReuseIdentifier:(NSString *)footerReuseIdentifier {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.itemSize = itmeSize;
layout.sectionInset = sectionInset;
layout.minimumLineSpacing = minimumLineSpacing;
layout.minimumInteritemSpacing = minimumInteritemSpacing;
layout.scrollDirection = scrollDirection;
UICollectionView *view = [self createCollectionViewFromFrame:frame collectionViewLayout:layout dataSource:dataSource delegate:delegate];
view.backgroundColor = backgroudColor;
[view registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"item"];
[view registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerReuseIdentifier];
[view registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:footerReuseIdentifier];
return view;
}
+ (UICollectionView *)createCollectionViewFromFrame:(CGRect)frame
collectionViewLayout:(UICollectionViewLayout *)layout
dataSource:(id<UICollectionViewDataSource>)dataSource
delegate:(id<UICollectionViewDelegate>)delegate {
UICollectionView *colltionView = [[UICollectionView alloc]initWithFrame:frame collectionViewLayout:layout];
colltionView.delegate = delegate;
colltionView.dataSource = dataSource;
return colltionView;
}
+ (UICollectionView *)createCollectionViewFromFrame:(CGRect)frame
collectionViewLayout:(UICollectionViewLayout *)layout
dataSource:(id<UICollectionViewDataSource>)dataSource
delegate:(id<UICollectionViewDelegate>)delegate
backgroudColor:(UIColor *)backgroudColor {
UICollectionView *collectionView = [self createCollectionViewFromFrame:frame collectionViewLayout:layout dataSource:dataSource delegate:delegate];
collectionView.backgroundColor = backgroudColor;
return collectionView;
}
#pragma----- UIImageView --------
//UIImageview,
+ (UIImageView *)createImageViewWithFrame:(CGRect)frame ImageName:(NSString *)imageName
{
UIImageView *imageView = [[UIImageView alloc]initWithFrame:frame];
if (imageName.length) {
imageView.image = [UIImage imageNamed:imageName];
}
// imageView.userInteractionEnabled=YES;
return imageView;
}
+ (UIImageView *)createImageViewWithFrame:(CGRect)frame ImageName:(NSString *)imageName contentMode:(UIViewContentMode)contentMode {
UIImageView *imageView = [self createImageViewWithFrame:frame ImageName:imageName];
imageView.contentMode = contentMode;
return imageView;
}
+ (UIImageView *)createImageViewWithFrame:(CGRect)frame ImageName:(NSString *)imageName imageTagValue:(NSInteger)tag {
UIImageView *imageView = [self createImageViewWithFrame:frame ImageName:imageName];
imageView.tag = tag;
return imageView;
}
#pragma----- UIView --------
+ (UIView *)viewWithFrame:(CGRect)frame {
UIView *view = [[UIView alloc]initWithFrame:frame];
return view;
}
+ (UIView *)viewWithFrame:(CGRect)frame backgroundColor:(UIColor *)color {
UIView *view = [FZYControl viewWithFrame:frame];
view.backgroundColor = color;
return view;
}
+ (UIView *)viewWithFrame:(CGRect)frame backgroundColor:(UIColor *)color borderColor:(CGColorRef)borderColor borderWidth:(CGFloat)borderWidth {
UIView *view = [self viewWithFrame:frame backgroundColor:color];
view.layer.borderColor = borderColor;
view.layer.borderWidth = borderWidth;
return view;
}
+ (UIView *)viewWithFrame:(CGRect)frame backgroundColor:(UIColor *)color viewTagValue:(NSInteger)tag {
UIView *view = [FZYControl viewWithFrame:frame backgroundColor:color];
view.tag = tag;
return view;
}
#pragma mark
+ (UIScrollView *)makeScrollViewWithFrame:(CGRect)frame andSize:(CGSize)size
{
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:frame];
scrollView.pagingEnabled = YES;
scrollView.contentSize = size;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
scrollView.scrollsToTop = NO;
return scrollView;
}
+ (UIPageControl *)makePageControlWithFram:(CGRect)frame
{
UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:frame];
pageControl.numberOfPages = 2;
pageControl.currentPage = 0;
return pageControl;
}
+ (UISlider *)makeSliderWithFrame:(CGRect)rect AndImage:(UIImage *)image
{
UISlider *slider = [[UISlider alloc]initWithFrame:rect];
slider.minimumValue = 0;
slider.maximumValue = 1;
[slider setThumbImage:[UIImage imageNamed:@"qiu"] forState:UIControlStateNormal];
slider.maximumTrackTintColor = [UIColor grayColor];
slider.minimumTrackTintColor = [UIColor yellowColor];
slider.continuous = YES;
slider.enabled = YES;
return slider;
}
+ (NSString *)stringFromDateWithHourAndMinute:(NSDate *)date
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//zzzzzz
[dateFormatter setDateFormat:@"HH:mm"];
NSString *destDateString = [dateFormatter stringFromDate:date];
return destDateString;
}
#pragma mark
+ (NSString *)stringDateWithTimeInterval:(NSString *)timeInterval
{
NSTimeInterval seconds = [timeInterval integerValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:seconds];
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-dd HH:mm:ss";
return [format stringFromDate:date];
}
+ (CGFloat)textHeightWithString:(NSString *)text width:(CGFloat)width fontSize:(NSInteger)fontSize
{
NSDictionary *dict = @{ NSFontAttributeName: [UIFont systemFontOfSize:fontSize] };
// 使280*float使14frame size : (280*xxx)!!
CGRect frame = [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil];
return frame.size.height + 5;
}
// 1
+ (NSString *)addOneByIntegerString:(NSString *)integerString
{
NSInteger integer = [integerString integerValue];
return [NSString stringWithFormat:@"%ld", integer + 1];
}
+ (void)changeTextFontWithLabel:(UILabel *)label changeStr:(NSString *)str font:(UIFont *)font {
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]initWithString:label.text];
if (label.attributedText) {
attr = label.attributedText.mutableCopy;
}
if (![label.text containsString:str]) {
return;
}
NSRange range = [label.text rangeOfString:str];
[attr addAttribute:NSFontAttributeName value:font range:range];
label.attributedText = attr;
}
+ (void)changeTextColorWithLabel:(UILabel *)label changeStr:(NSString *)str color:(UIColor *)color {
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]initWithString:label.text];
if (label.attributedText) {
attr = label.attributedText.mutableCopy;
}
if (![label.text containsString:str]) {
return;
}
NSRange range = [label.text rangeOfString:str];
[attr addAttribute:NSForegroundColorAttributeName value:color range:range];
label.attributedText = attr;
}
+ (void)changeTextColorWithlabel:(UILabel *)label changeString:(NSString *)str backGroudColor:(UIColor *)backColor color:(UIColor *)color {
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]initWithString:label.text];
if (label.attributedText) {
attr = label.attributedText.mutableCopy;
}
if (![label.text containsString:str]) {
return;
}
NSRange range = [label.text rangeOfString:str];
[attr addAttribute:NSBackgroundColorAttributeName value:backColor range:range];
[attr addAttribute:NSForegroundColorAttributeName value:color range:range];
label.attributedText = attr;
}
+ (void)addUnderLineWithLabel:(UILabel *)label changeStr:(NSString *)str {
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
NSRange range = [label.text rangeOfString:str];
// [attr addAttribute:NSForegroundColorAttributeName value:RGB_COLOR(@"#999999", 1) range:range];
[attr addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlinePatternSolid | NSUnderlineStyleSingle] range:range];
label.attributedText = attr;
}
+ (void)addUnderLineWithLabel:(UILabel *)label changeStr:(NSString *)str andFont:(UIFont *)font {
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
NSRange range = NSMakeRange(label.text.length - str.length, str.length);
[attr addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlinePatternSolid | NSUnderlineStyleSingle] range:range];
[attr addAttribute:NSForegroundColorAttributeName value:HEXCOLOR(0x999999) range:range];
[attr addAttribute:NSFontAttributeName value:font range:range];
label.attributedText = attr;
}
+ (void)addUnderLineWithLabel:(UILabel *)label changeStr:(NSString *)str andFont:(UIFont *)font andColor:(UIColor *)color{
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
NSRange range = NSMakeRange(label.text.length - str.length, str.length);
[attr addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlinePatternSolid | NSUnderlineStyleSingle] range:range];
[attr addAttribute:NSForegroundColorAttributeName value:color range:range];
[attr addAttribute:NSFontAttributeName value:font range:range];
label.attributedText = attr;
}
+ (void)addUnderLineWithLabel:(UILabel *)label range:(NSRange)range andFont:(UIFont *)font {
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
[attr addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlinePatternSolid | NSUnderlineStyleSingle] range:range];
[attr addAttribute:NSForegroundColorAttributeName value:HEXCOLOR(0x999999) range:range];
[attr addAttribute:NSFontAttributeName value:font range:range];
label.attributedText = attr;
}
+ (void)changeTextColorWithLabel:(UILabel *)label range:(NSRange)range color:(UIColor *)color {
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
if (range.location + range.length > label.text.length) {
NSLog(@"range越界 -- %@,%ld,%ld", label.text, range.location, range.length);
return;
}
[attr addAttribute:NSForegroundColorAttributeName value:color range:range];
label.attributedText = attr;
}
+ (void)changeTextFontWithLabel:(UILabel *)label range:(NSRange)range font:(UIFont *)font {
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
if (range.location + range.length > label.text.length) {
NSLog(@"range越界 -- %@,%ld,%ld", label.text, range.location, range.length);
return;
}
[attr addAttribute:NSFontAttributeName value:font range:range];
label.attributedText = attr;
}
+(void)changeTextWithLabel:(UILabel *)label changeStr:(NSString *)str font:(UIFont *)font andColor:(UIColor *)color {
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
NSRange range = NSMakeRange(label.text.length-str.length, str.length);
[attr addAttribute:NSForegroundColorAttributeName value:color range:range];
[attr addAttribute:NSFontAttributeName value:font range:range];
label.attributedText = attr;
}
+ (void)changeTextFontWithLabel:(UILabel *)label changeStrings:(NSArray<NSString *> *)strings font:(UIFont *)font {
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
for (NSString *str in strings) {
NSRange range = [label.text rangeOfString:str];
[attr addAttribute:NSFontAttributeName value:font range:range];
}
label.attributedText = attr;
}
+ (void)changeTextColorWithlabel:(UILabel *)label changeStrings:(NSArray<NSString *> *)strings color:(UIColor *)color {
NSMutableAttributedString *attr;
if (label.attributedText!=nil) {
attr = [[NSMutableAttributedString alloc]initWithAttributedString:label.attributedText];
}else{
attr = [[NSMutableAttributedString alloc] initWithString:label.text];
}
for (NSString *str in strings) {
NSRange range = [label.text rangeOfString:str];
[attr addAttribute:NSForegroundColorAttributeName value:str range:range];
}
label.attributedText = attr;
}
// label
+(CGFloat)loadDynamicLabelHeightWithLabel:(UILabel *)lab
{
lab.lineBreakMode = NSLineBreakByWordWrapping;
lab.numberOfLines = 0;
NSDictionary *attributes = @{NSFontAttributeName:lab.font};
CGSize size = [lab.text boundingRectWithSize:CGSizeMake(lab.frame.size.width,MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
return size.height;
}
// label
+(CGFloat)loadDynamicLabelWidthWithLabel:(UILabel *)lab
{
lab.lineBreakMode = NSLineBreakByWordWrapping;
lab.numberOfLines = 1;
NSDictionary *attributes = @{NSFontAttributeName:lab.font};
CGSize size = [lab.text boundingRectWithSize:CGSizeMake(MAXFLOAT,lab.frame.size.height) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
return size.width;
}
@end