@interface RootViewController ()<UITableViewDataSource,UITableViewDelegate>
@property(nonatomic, retain)NSMutableArray *dataSource;
@end
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
_dataSource = [[NSMutableArray alloc] init];
NSString * path = [[NSBundle mainBundle] pathForResource:@"crayons副本" ofType:@"txt"];
NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSArray *arr = [string componentsSeparatedByString:@"\n"];
for (NSString *str in arr) {
NSArray *temp = [str componentsSeparatedByString:@" #"];
MyColor *color = [MyColor myColorWithName:temp[0] color:temp[1]];
[_dataSource addObject:color];
}
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationController.navigationBar.translucent = NO;
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 20, 320, 480 - 20) style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource = self;
[self.view addSubview:tableView];
[tableView release];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return _dataSource.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *identifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identifier] autorelease];
}
MyColor *model = _dataSource[indexPath.row];
cell.textLabel.text = model.name;
cell.detailTextLabel.text = model.color;
cell.backgroundColor = [self colorWithHexString:model.color];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
SecondViewController *vc = [[SecondViewController alloc] init];
[self presentViewController:vc animated:YES completion:^{
MyColor *model = _dataSource[indexPath.row];
vc.view.backgroundColor = [self colorWithHexString:model.color];
}];
}
- (UIColor*)colorWithHexString:(NSString*)string
{
//1.创建被扫描的字符串对象
NSString *strScan=string;
//2.创建扫描器,需要用到1中的对象
NSScanner *scan=[NSScanner scannerWithString:strScan];
//3.创建一个变量接收扫描结果
unsigned int a;
//4.将变量地址作为扫描方法的参数
[scan scanHexInt:&a];
NSString *redString=[strScan substringWithRange:NSMakeRange(0, 2)];
NSScanner *redScan=[NSScanner scannerWithString:redString];
unsigned int red;
[redScan scanHexInt:&red];
NSString *greenString=[strScan substringWithRange:NSMakeRange(2, 2)];
NSScanner *greenScan=[NSScanner scannerWithString:greenString];
unsigned int green;
[greenScan scanHexInt:&green];
NSString *blueString=[strScan substringWithRange:NSMakeRange(4, 2)];
NSScanner *blueScan=[NSScanner scannerWithString:blueString];
unsigned int blue;
[blueScan scanHexInt:&blue];
// NSLog(@"%u",blue);
UIColor *colorRGB=[[UIColor alloc] initWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:1.0];
return [colorRGB autorelease];
}