iOS常用小功能(获得屏幕图像、压缩图片、加边框、调整label的size)

2025-05-29 0 55

摘要:获得屏幕图像,label的动态size,时间戳转化为时间,RGB转化成颜色,加边框,压缩图片,textfield的placeholder,图片做灰度处理

1.获得屏幕图像

?

1

2

3

4

5

6

7

8

9
- (UIImage *)imageFromView: (UIView *) theView

{

UIGraphicsBeginImageContext(theView.frame.size);

CGContextRef context = UIGraphicsGetCurrentContext();

[theView.layer renderInContext:context];

UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return theImage;

}

2.label的动态size

?

1

2

3

4

5

6

7

8
- (CGSize)labelAutoCalculateRectWith:(NSString*)text FontSize:(CGFloat)fontSize MaxSize:(CGSize)maxSize

{

NSMutableParagraphStyle* paragraphStyle = [[NSMutableParagraphStyle alloc]init]; paragraphStyle.lineBreakMode=NSLineBreakByWordWrapping;

NSDictionary* attributes =@{NSFontAttributeName:[UIFont fontWithName:@"MicrosoftYaHei" size:fontSize],NSParagraphStyleAttributeName:paragraphStyle.copy};

CGSize labelSize = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine attributes:attributes context:nil].size;

labelSize.height=ceil(labelSize.height);

return labelSize;

}

3.时间戳转化为时间

?

1

2

3

4

5

6

7

8

9

10
-(NSString*)TimeTrasformWithDate:(NSString *)dateString

{

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];

[formatter setDateFormat:@"YY-MM-dd HH:mm"];

[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Beijing"]];

NSString *date = [formatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:dateString.integerValue]];

//NSLog(@"date1:%@",date);

return date;

}

4.RGB转化成颜色

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20
+ (UIColor *)colorFromHexRGB:(NSString *)inColorString

{

UIColor *result = nil;

unsigned int colorCode = 0;

unsigned char redByte, greenByte, blueByte;

if (nil != inColorString)

{

NSScanner *scanner = [NSScanner scannerWithString:inColorString];

(void) [scanner scanHexInt:&colorCode]; // ignore error

}

redByte = (unsigned char) (colorCode >> 16);

greenByte = (unsigned char) (colorCode >> 8);

blueByte = (unsigned char) (colorCode); // masks off high bits

result = [UIColor

colorWithRed: (float)redByte / 0xff

green: (float)greenByte/ 0xff

blue: (float)blueByte / 0xff

alpha:1.0];

return result;

}

5.加边框

?

1

2

3

4

5

6

7
UIRectCorner corners=UIRectCornerTopLeft | UIRectCornerTopRight;

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:corners

cornerRadii:CGSizeMake(4, 0)];

CAShapeLayer *maskLayer = [CAShapeLayer layer];

maskLayer.frame = view.bounds;

maskLayer.path = maskPath.CGPath;

view.layer.mask = maskLayer;

6.//压缩图片

?

1

2

3

4

5

6

7

8

9

10

11

12

13
+ (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize

{

//创建一个图形上下文形象

UIGraphicsBeginImageContext(newSize);

// 告诉旧图片画在这个新的环境,所需的

// new size

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];

//获取上下文的新形象

UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

// 结束上下文

UIGraphicsEndImageContext();

return newImage;

}

7.textfield的placeholder

?

1

2
[textF setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];

[textF setValue:[UIFont boldSystemFontOfSize:15] forKeyPath:@"_placeholderLabel.font"];

8.布局

?

1

2
butLeft. imageEdgeInsets = UIEdgeInsetsMake (7 , 5 , 7 , 25 );

butLeft.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

9.//调用此方法改变label最后2个字符的大小

?

1

2

3

4

5

6

7
- (void)label:(UILabel *)label BehindTextSize:(NSInteger)integer

{

NSMutableAttributedString *mutaString = [[NSMutableAttributedString alloc] initWithString:label.text];

[mutaString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:16] range:NSMakeRange(label.text.length-2, 2)];

label.attributedText = mutaString;

}

10.

?

1

2

3

4

5

6
- (void)ChangeLabelTextColor:(UILabel *)label

{

NSMutableAttributedString *mutaString = [[NSMutableAttributedString alloc] initWithString:label.text];

[mutaString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:207/255.0 green:34/255.0 blue:42/255.0 alpha:1] range:NSMakeRange(0, 5)];

label.attributedText = mutaString;

}

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22
if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {

[tableView setSeparatorInset:UIEdgeInsetsZero];

}

if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {

if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {

[tableView setLayoutMargins:UIEdgeInsetsZero];

}

}

// Do any additional setup after loading the view.

}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

{

if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {

[cell setSeparatorInset:UIEdgeInsetsZero];

}

if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {

if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

[cell setLayoutMargins:UIEdgeInsetsZero];

}

}

}

11.图片变灰度

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
-(UIImage *) grayscaleImage: (UIImage *) image

{

CGSize size = image.size;

CGRect rect = CGRectMake(0.0f, 0.0f, image.size.width,

image.size.height);

// Create a mono/gray color space

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();

CGContextRef context = CGBitmapContextCreate(nil, size.width,

size.height, 8, 0, colorSpace, kCGImageAlphaNone);

CGColorSpaceRelease(colorSpace);

// Draw the image into the grayscale context

CGContextDrawImage(context, rect, [image CGImage]);

CGImageRef grayscale = CGBitmapContextCreateImage(context);

CGContextRelease(context);

// Recover the image

UIImage *img = [UIImage imageWithCGImage:grayscale];

CFRelease(grayscale);

return img;

}

13.16进制转rgb

?

1
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持快网idc!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 iOS常用小功能(获得屏幕图像、压缩图片、加边框、调整label的size) https://www.kuaiidc.com/90779.html

相关文章

发表评论
暂无评论