本文转载至 http://blog.sina.com.cn/s/blog_bf2d33bd01017q6l.html

@interface ThirdViewController : UIViewController
@property(nonatomic,retain)UITableView *tv;
@property(nonatomic,retain)NSMutableArray *tarray,*filteredArray;
@property(nonatomic,retain)UISearchDisplayController *sdc;//搜索栏控制器
@property(nonatomic,retain)UISearchBar *serchbar;
@end

//
#import "ThirdViewController.h"

@interface ThirdViewController ()

@end

@implementation ThirdViewController
@synthesize tarray,tv,sdc,serchbar,filteredArray;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
//crayons.txt
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.title=@"搜索";
//    self.view.backgroundColor=[UIColor blueColor];横屏控制条高33竖屏控制条搞44
    self.tv=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 480-44-44) style:UITableViewStylePlain];
    [self.view addSubview:tv];
    self.tv.dataSource=self;//设置代理为自身
    self.tv.delegate=self;
   
    NSString *path=[[NSBundle mainBundle]pathForResource:@"crayons" ofType:@"txt"];//取到路径
    NSString *readFile=[[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];//读取文件
    self.tarray= (NSMutableArray*)[readFile componentsSeparatedByString:@"\n"];//分割数据
   
    //设置搜索条的大小
    self.serchbar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
    [self.view addSubview:serchbar];
   
    //创建搜索栏控制器
    self.sdc=[[UISearchDisplayController alloc]initWithSearchBar:serchbar contentsController:self];
    //UISearchDisplayController组件 和 UITableView共用用相同的代理
    sdc.searchResultsDataSource=self;//设置搜索结果数据源
    sdc.searchResultsDelegate=self;//设置代理
       
   
    [self.tv reloadData];//刷新数据
   
    // Do any additional setup after loading the view.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    //#warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1;
}

//返回条数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   
    //#警告不完整的方法实现。
    //返回一节中的行数。
//    return [self.tarray count];
   
    if (tableView==self.tv)
    {
        return [self.tarray count];
    }
    else
    {
        //Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配。谓词表示计算真值或假值的函数。
        //用predicateWithFormat创建一个谓词,条件是搜索的信息
        //self关键字 字符串运算符CONTAINS[c][d][cd] CONTAINS:检查某个字符串是否以另一个字符串内部。[c]不区分大小写[d]不区分发音符号即没有重音符号[cd]既不区分大小写,又不区分发音符号。
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", self.serchbar.text];
        //filteredArrayUsingPredicate方法它将循环过滤数组内容,根据谓词计算每个对象的值,并将值为YES的对象累计到将被返回的新数组filteredArray中。
        self.filteredArray = (NSMutableArray*)[self.tarray filteredArrayUsingPredicate:predicate];
        //符合搜索条件的新数组的长度
        return [self.filteredArray count];
    }

}
//返回可用单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";//复用cell的字符索引
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];//重用机制创建cell
   
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier]autorelease];
    }
    int index = indexPath.row;//取出行标记
    NSString *txt = @"";
    if (tableView==self.tv)
    {
        txt=[self.tarray objectAtIndex:index];
    }else
    {
        txt=[self.filteredArray objectAtIndex:index];
    }
   
    NSArray *array = [txt componentsSeparatedByString:@"#"];//设置#分割
    cell.textLabel.text = [array objectAtIndex:0];
    UIColor *tc=[self setColorWithString:[array objectAtIndex:1]];
    cell.textLabel.textColor=tc;
   
    // Configure the cell...`
   
    return cell;
}
//设置行高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 50;
}
-(UIColor*)setColorWithString:(NSString*)colorString
{
    NSString *f1=[colorString substringWithRange:NSMakeRange(0, 2)];
    NSString *f2=[colorString substringWithRange:NSMakeRange(2, 2)];
    NSString *f3=[colorString substringWithRange:NSMakeRange(4, 2)];
    unsigned int red,green,blue;
    [[NSScanner scannerWithString:f1] scanHexInt:&red];
    [[NSScanner scannerWithString:f2] scanHexInt:&green];
    [[NSScanner scannerWithString:f3] scanHexInt:&blue];
//    NSLog(@"f1===%d,f2===%d,f3===%d",red,green,blue);
    return [[UIColor alloc]initWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:1];
}

//重写的表视图,支持有条件的编辑。
 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
 {
 // 返回NO,如果你不想指定的项目为可编辑的。
 return YES;
 }

#pragma mark - Table view delegate

//响应单击事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Navigation logic may go here. Create and push another view controller.
    [self.tv resignFirstResponder];
    UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];
    self.serchbar.tintColor=cell.textLabel.textColor;
    self.navigationController.navigationBar.tintColor=cell.textLabel.textColor;  
}
//

Almond #EED9C4
Antique Brass #C88A65
Apricot #FDD5B1
Aquamarine #71D9E2
Asparagus #7BA05B
Atomic Tangerine #FF9966
Banana Mania #FBE7B2
Beaver #926F5B
Bittersweet #FE6F5E
Black #000000
Blizzard Blue #A3E3ED
Blue #0066FF
Blue Bell #9999CC
Blue Green #0095B6
Blue Violet #6456B7
Brick Red #C62D42
Brink Pink #FB607F
Brown #AF593E
Burnt Orange #FF7034
Burnt Sienna #E97451
Cadet Blue #A9B2C3
Canary #FFFF99
Caribbean Green #00CC99
Carnation Pink #FFA6C9
Cerise #DA3287
Cerulean #02A4D3
Chartreuse #FF9966
Chestnut #B94E48
Copper #DA8A67
Cornflower #93CCEA
Cotton Candy #FFB7D5
Cranberry #DB5079
Dandelion #FED85D
Denim #1560BD
Desert Sand #EDC9AF
Eggplant #614051
Electric Lime #CCFF00
Fern #63B76C
Flesh #FFCBA4
Forest Green #5FA777
Fuchsia #C154C1
Fuzzy Wuzzy Brown #C45655
Gold #E6BE8A
Goldenrod #FCD667
Granny Smith Apple #9DE093
Gray #8B8680
Green #01A368
Green Yellow #F1E788
Happy Ever After #6CDA37
Hot Magenta #FF00CC
Inch Worm #B0E313
Indian Red #B94E48
Indigo #4F69C6
Jazzberry Jam #A50B5E
Jungle Green #29AB87
Laser Lemon #FFFF66
Lavender #FBAED2
Macaroni And Cheese #FFB97B
Magenta #F653A6
Magic Mint #AAF0D1
Mahogany #CA3435
Manatee #8D90A1
Mango Tango #E77200
Maroon #C32148
Mauvelous #F091A9
Melon #FEBAAD
Midnight Blue #003366
Mountain Meadow #1AB385
Mulberry #C54B8C
Navy Blue #0066CC
Neon Carrot #FF9933
Olive Green #B5B35C
Orange #FF681F
Orchid #E29CD2
Outer Space #2D383A
Outrageous Orange #FF6037
Pacific Blue #009DC4
Peach #FFCBA4
Periwinkle #C3CDE6
Pig Pink #FDD7E4
Pine Green #01796F
Pink Flamingo #FF66FF
Plum #843179
Prussian Blue #003366
Purple Heart #652DC1
Purple Mountain's Majesty #9678B6
Purple Pizzazz #FF00CC
Radical Red #FF355E
Raw Sienna #D27D46
Razzle Dazzle Rose #FF33CC
Razzmatazz #E30B5C
Red #ED0A3F
Red Orange #FF3F34
Red Violet #BB3385
Robin's Egg Blue #00CCCC
Royal Purple #6B3FA0
Salmon #FF91A4
Scarlet #FD0E35
Screamin' Green #66FF66
Sea Green #93DFB8
Sepia #9E5B40
Shadow #837050
Shamrock #33CC99
Shocking Pink #FF6FFF
Silver #C9C0BB
Sky Blue #76D7EA
Spring Green #ECEBBD
Sunglow #FFCC33
Sunset Orange #FE4C40
Tan #FA9D5A
Tickle Me Pink #FC80A5
Timberwolf #D9D6CF
Torch Red #FD0E35
Tropical Rain Forest #00755E
Tumbleweed #DEA681
Turquoise Blue #6CDAE7
Ultra Green #66FF66
Ultra Orange #FF6037
Ultra Pink #FF6FFF
Ultra Red #FD5B78
Ultra Yellow #FFFF66
Unmellow Yellow #FFFF66
Violet (purple) #8359A3
Violet Red #F7468A
Vivid Tangerine #FF9980
Vivid Violet #803790
White #FFFFFF
Wild Blue Yonder #7A89B8
Wild Strawberry #FF3399
Wild Watermelon #FD5B78
Wisteria #C9A0DC
Yellow #FBE870
Yellow Green #C5E17A
Yellow Orange #FFAE42

UI UISearchBar UISearchDisplayController实现搜索条、解析颜色的更多相关文章

  1. Swift - 搜索条(UISearchBar)的用法

    1,搜索条Options属性还可设置如下功能样式: Shows Search Results Button:勾选后,搜索框右边显示一个圆形向下的按钮,单击会发送特殊事件. Shows Bookmark ...

  2. iOS 搜索条使用详解

    在ios开发中搜索条的使用挺常见的,不过之前一直没用到也没细细研究,最近做外包项目的时候刚好用到,在这里记录一下使用的过程,只要理解了原理,其实还是比较简单的!上传的图片有点大,刚好可以看清楚它的使用 ...

  3. iOS--- UITableView + UISearchDisplayController - - - - -实现搜索功能

    iOS中UISearchDisplayController用于搜索,搜索栏的重要性我们就不说了,狼厂就是靠搜索起家的,现在越来越像一匹没有节操的狼,UC浏览器搜索栏现在默认自家的神马搜索,现在不管是社 ...

  4. 点击搜索取消UISearchDisplayController的搜索状态

    一般,我们用到UISearchDisplayController的时候,都是须要对一个数据源进行刷选,在UISearchDisplayController自带的tableView中展示出来,然后点击退 ...

  5. 【转】 Pro Android学习笔记(五十):ActionBar(3):搜索条

    目录(?)[-] ActionBar中的搜索条 通过Menu item上定义search view 进行Searchable的配置 在activity中将search view关联searchable ...

  6. 使用CSS3和jQuery可伸缩的搜索条

    使用CSS3和jQuery可伸缩的搜索条 helloweba.com 作者:月光光 时间:2013-12-09 21:23 标签: CSS3 jquery 搜索条在我们网站是必不可少的,尤其是在有限的 ...

  7. 模仿京东顶部搜索条效果制作的一个小demo

    最近模仿京东顶部搜索条效果制作的一个小demo,特贴到这里,今后如果有用到可以参考一下,代码如下 #define kScreenWidth [UIScreen mainScreen].bounds.s ...

  8. 一个漂亮的DIV搜索条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 1.引入必要的文件 2.加载 UI 组件的方式 4.Parser 解析器

    //引入 jQuery 核心库,这里采用的是 2.0 <scripttype="text/javascript"src="easyui/jquery.min.js& ...

随机推荐

  1. shell-001

    for: shell_test #!/bin/bash var= var=$var+ echo $var mkdir only_a_joke shell_joke #!/bin/bash ./shel ...

  2. 最短路POJ 1062 昂贵的聘礼

    C - 昂贵的聘礼 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit St ...

  3. 性能学习之--loaderunner中run-time setting常用功能

    先打开run-time setting界面 一.Run Logic   设置迭代次数,只控制action的迭代次数,init和end只执行一次. 如果迭代次数设置10,10个并发用户,那么init和e ...

  4. 【Luogu】P2059卡牌游戏(概率DP)

    题目链接 这绝壁是道紫难度的题 请移步xyz32678的题解. 设f[i][j]是有i个人参加了游戏,1是庄家,最后j胜出的概率. 我们可以发现,这个游戏影响胜出的概率的只有庄家的相对位置和人数,跟玩 ...

  5. 【Luogu】P1868饥饿的奶牛(DP)

    题目链接 话说我存一些只需要按照一个关键字排序的双元素结构体的时候老是喜欢使用链式前向星…… DP.f[i]表示前i个位置奶牛最多能吃到的草.转移方程如下: f[i]=f[i-]; f[i]=max( ...

  6. 2017NOIP初赛游记

    前天晚上,玩三国杀,玩到了昨天凌晨2点40多分吧,我觉得初赛要爆炸了, 不得不吐槽一下,三国杀的武将太少了. 昨天是初赛的日子,上午8点多来了后看了看阅读程序和程序填空,复习了以下理论知识和wsj 然 ...

  7. CodeForces 303B Rectangle Puzzle II

    题意: 给定一个靠着坐标轴长为n,宽为m的矩形和 矩形中的一个点A,求在这个矩形内部一个 长宽比为a/b的小矩形,使这个小矩形的长宽尽量大使点A在小矩形内部,并且点A尽量靠近小矩形的中心 CF的思维题 ...

  8. 动手实践 Linux VLAN

    本节我们来看如何在实验环境中实施和配置如下 VLAN 网络 配置 VLAN 编辑 /etc/network/interfaces,配置 eth0.10.brvlan10.eth0.20 和 brvla ...

  9. ci框架——数据库(增删改查)

    1:配置数据库(application/config/database.php)修改 $db['default'] = array( 'dsn' => '', 'hostname' => ...

  10. (43)C#网络1 http

    一.HttpClient类 用于发送http请求,并接受请求的相应 (从4.5起开始可用) using System.Net.Http; 异步调用 HttpClient httpClient = ne ...