UIColor方法

@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];

}

你可能感兴趣的:(UIColor方法)