清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
/***********************.m文件********************************/ #import "ViewController.h" @interface ViewController () @property (nonatomic,strong) NSMutableArray *interestArray;/*存放选中的按钮*/ @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.interestArray = [NSMutableArray new]; [self viewtwo]; // [self viewView]; [self viewView]; } //第一种方法 - (void)viewView{ UIView *view = [[UIView alloc]initWithFrame:self.view.bounds]; view.backgroundColor = [UIColor yellowColor]; int width = 0; int height = 0; int number = 0; int han = 0; NSArray *titleArr = @[@"北京欢sdf迎您",@"北fads京欢迎您",@"北京sdfasas欢迎您",@"北京sdfasf欢迎您",@"北京sdfa您",@"北京sdfsaf欢迎您",@"北京sdfsaf欢迎您",@"北您",@"北京是打发撒旦双方的飞洒欢迎您",@"北京阿斯蒂芬迎您",@"北京sdfsaf欢迎您",@"北迎您",]; //创建button for (int i = 0; i < titleArr.count; i++) { UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.tag = 300 + i; [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; CGSize titleSize = [self getSizeByString:titleArr[i] AndFontSize:20]; han = han +titleSize.width; if (han > [[UIScreen mainScreen]bounds].size.width) { han = 0; han = han + titleSize.width; height++; width = 0; width = width+titleSize.width; number = 0; button.frame = CGRectMake(10, 10 +50*height, titleSize.width, 40); }else{ button.frame = CGRectMake(width+10+(number*10), 10 +50*height, titleSize.width, 40); width = width+titleSize.width; } number++; button.titleLabel.font = [UIFont systemFontOfSize:13]; button.layer.masksToBounds = YES; button.layer.cornerRadius = 10; button.backgroundColor = [UIColor lightGrayColor]; button.titleLabel.font = [UIFont systemFontOfSize:20]; [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [button setTitle:titleArr[i] forState:UIControlStateNormal]; [button addTarget:self action:@selector(handleButton:) forControlEvents:UIControlEventTouchUpInside]; [view addSubview:button]; } [self.view addSubview:view]; } //第二种方法 - (void)viewtwo{ UIView * tagView = [[UIView alloc]initWithFrame:CGRectMake(0, 20, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height)]; //第一个 label的起点 CGSize size = CGSizeMake(5, 30); //间距 CGFloat padding = 5.0; CGFloat width = [UIScreen mainScreen].bounds.size.width; NSArray *titleArr = @[@"北京欢sdf迎您",@"北fads京欢迎您",@"北京sdfasas欢迎您",@"北京sdfasf欢迎您",@"北京sdfa您",@"北京sdfsaf欢迎您",@"北京sdfsaf欢迎您",@"北您",@"北京是打发撒旦双方的飞洒欢迎您",@"北京阿斯蒂芬迎您",@"北京sdfsaf欢迎您",@"北迎您",]; for (int i = 0; i < titleArr.count; i ++) { CGFloat keyWorldWidth = [self getSizeByString:titleArr[i] AndFontSize:14].width; if (keyWorldWidth > width) { keyWorldWidth = width; } if (width - size.width < keyWorldWidth) { size.height += 30.0; size.width = 5.0; } //创建 label点击事件 UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(size.width, size.height-30, keyWorldWidth, 20)]; button.titleLabel.numberOfLines = 0; button.backgroundColor = [UIColor redColor]; [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; button.layer.cornerRadius = 3.0; button.layer.masksToBounds = YES; button.titleLabel.font = [UIFont systemFontOfSize:14]; button.titleLabel.textAlignment = NSTextAlignmentCenter; [button setTitle:titleArr[i] forState:UIControlStateNormal]; [tagView addSubview:button]; button.tag = i; [button addTarget:self action:@selector(tagButtonClick:) forControlEvents:UIControlEventTouchUpInside]; //起点 增加 size.width += keyWorldWidth+padding; } [self.view addSubview:tagView]; } - (void)handleButton:(UIButton *)button{ button.selected = !button.selected; if (button.selected) { button.backgroundColor = [UIColor redColor]; [self.interestArray addObject:button.titleLabel.text]; }else{ button.backgroundColor = [UIColor lightGrayColor]; [self.interestArray removeObject:button.titleLabel.text]; } } - (void)tagButtonClick:(UIButton *)button{ NSLog(@"%@",button.titleLabel.text); } //计算文字所占大小 - (CGSize)getSizeByString:(NSString*)string AndFontSize:(CGFloat)font { CGSize size = [string boundingRectWithSize:CGSizeMake(999, 25) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil].size; size.width += 5; return size; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end