首页 > 代码库 > 使用YXHUD
使用YXHUD
使用YXHUD
这是本人自己设计的一个类,但功能很不完善,先看看效果:
源码:
YXHUD.h 与 YXHUD.m
//// YXHUD.h// UILabel//// Created by YouXianMing on 14-9-16.// Copyright (c) 2014年 YouXianMing. All rights reserved.//#import <UIKit/UIKit.h>@interface YXHUD : UIView@property (nonatomic, strong) NSString *showString; // 普通文本@property (nonatomic, strong) NSAttributedString *showAttributedString; // 富文本@property (nonatomic, assign) CGFloat fixWidth; // 固定的宽度@property (nonatomic, assign) CGSize gapSize; // 间隙宽度@property (nonatomic, assign) CGFloat cornerRadius; // 圆角- (void)fix;@end
//// YXHUD.m// UILabel//// Created by YouXianMing on 14-9-16.// Copyright (c) 2014年 YouXianMing. All rights reserved.//#import "YXHUD.h"@interface YXHUD ()@property (nonatomic, strong) UILabel *textLabel;@property (nonatomic, strong) UIView *backedView;@end@implementation YXHUD- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { // backedView(背景view) _backedView = [UIView new]; _backedView.backgroundColor = [UIColor blackColor]; [self addSubview:_backedView]; // textLabel(文字label) _textLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 0)]; _textLabel.textColor = [UIColor whiteColor]; _textLabel.numberOfLines = 0; // 设置自动换行 [_backedView addSubview:_textLabel]; } return self;}#pragma mark - getter.setter方法// 设置普通文本@synthesize showString = _showString;- (void)setShowString:(NSString *)showString{ _showString = showString; _textLabel.text = showString;}- (NSString *)showString{ return _showString;}// 设置富文本@synthesize showAttributedString = _showAttributedString;- (void)setShowAttributedString:(NSAttributedString *)showAttributedString{ _showAttributedString = showAttributedString; _textLabel.attributedText = showAttributedString;}- (NSAttributedString *)showAttributedString{ return _showAttributedString;}// 固定宽度@synthesize fixWidth = _fixWidth;- (void)setFixWidth:(CGFloat)fixWidth{ _textLabel.frame = CGRectMake(0, 0, fixWidth, 0); _fixWidth = fixWidth;}- (CGFloat)fixWidth{ return _fixWidth;}// backedView的圆角@synthesize cornerRadius = _cornerRadius;- (void)setCornerRadius:(CGFloat)cornerRadius{ _cornerRadius = cornerRadius; _backedView.layer.cornerRadius = cornerRadius;}- (CGFloat)cornerRadius{ return _cornerRadius;}#pragma mark - 其他方法// 计算出文本尺寸- (CGRect)calculate{ [_textLabel sizeToFit]; return _textLabel.bounds;}// 最终计算出尺寸- (void)fix{ // 计算出文本的rect值 CGRect rect = [self calculate]; rect.size.height += _gapSize.height; rect.size.width += _gapSize.width; _backedView.frame = rect; _textLabel.center = _backedView.center; self.frame = rect;}@end
使用时候的代码:(注:里面用到的富文本为本人自己所写的类)
//// RootViewController.m// UILabel//// Created by YouXianMing on 14-9-16.// Copyright (c) 2014年 YouXianMing. All rights reserved.//#import "RootViewController.h"#import "YXHUD.h"#import "ConfigAttributedString.h"#import "NSString+YX.h"@interface RootViewController ()@end@implementation RootViewController- (void)viewDidLoad{ [super viewDidLoad]; YXHUD *hud = [YXHUD new]; hud.fixWidth = 200; // 固定Label宽度为100 hud.gapSize = CGSizeMake(20, 20); // 间隙宽度为10 hud.cornerRadius = 5.f; // 圆角值为5 NSString *str = @"Warnning:\n\nYouXianMing NoZuoNoDie"; NSArray *sets = @[ // 全局设置 [ConfigAttributedString font:[UIFont systemFontOfSize:10.f] range:[str range]], // 局部设置 [ConfigAttributedString font:[UIFont fontWithName:@"HelveticaNeue-Thin" size:14.f] range:[@"Warnning:" rangeFrom:str]], [ConfigAttributedString foregroundColor:[UIColor yellowColor] range:[@"Warnning:" rangeFrom:str]], [ConfigAttributedString foregroundColor:[UIColor redColor] range:[@"YouXianMing" rangeFrom:str]]]; NSLog(@"%@", [str createAttributedStringAndConfig:sets]); hud.showAttributedString = [str createAttributedStringAndConfig:sets]; [hud fix]; CGRect rect = hud.frame; rect.origin.x = 100; rect.origin.y = 100; hud.frame = rect; [self.view addSubview:hud];}@end
可以固定位置:
可以进行复杂的设置:
可以设置富文本:
不过还不是完全品......
使用YXHUD
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。