iOS UISearchBar调整搜索框的颜色

用纯代码写的app页面,调整搜索框的颜色


-(void) viewDidLoad{

  
  
 [super viewDidLoad];          // do this only if top level      // search bar //self.searchBar          UISearchBar *mySearchBar= [[UISearchBar alloc] initWithFrame:CGRectMake(kFrameSearchBarX,kFrameSearchBarY+60,kFrameSearchBarWidth, kFrameSearchBarHeight)];    mySearchBar.autoresizingMask |= UIViewAutoresizingFlexibleWidth; mySearchBar.delegate = self;          UIView *segment=[[mySearchBar subviews] objectAtIndex:0];    // [segment removeFromSuperview];     [segment setAlpha:0.5]; //设定透明度     mySearchBar.tintColor=[UIColor purpleColor]; //在textfield上的光标颜色     mySearchBar.clipsToBounds=YES;     mySearchBar.backgroundColor=[UIColor whiteColor];//背景颜色,就是底色           mySearchBar.barStyle = SPACE_BAR_STYLE; // UIBarStyleBlackTranslucent; 这里就两个样子 一个是有背后那个阴影框,一个没有      mySearchBar.showsScopeBar=YES;           //[[self.searchBar.subviews objectAtIndex:0]removeFromSuperview];          
         //[[[[self.searchBar.subviews objectAtIndex:0]subviews]objectAtIndex:0]removeFromSuperview];      mySearchBar.placeholder = MyLocalizedString(@"Search", @"Search");     //[self.searchBar setTintColor:[UIColor colorWithRed:1 green:1 blue:1 alpha:1]]; //    [mySearchBar setTintColor:[UIColor whiteColor ]]; //    [mySearchBar setBarTintColor:[UIColor whiteColor]]; //整个bar的着色 //    [mySearchBar setBackgroundColor:[UIColor clearColor]]; //    [mySearchBar setTranslucent:YES]; //是不是透明     [mySearchBar setBackgroundImage:[UIImage imageNamed:@"barNavStatus_NoCloud_IOS7"]]; //给searchbar设定背景图片.不能遮掩背景框     //[self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"barNavStatus_NoCloud_IOS7"] forState:UIControlStateNormal];     //[self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"back_btn_tc"]  forState:UIControlStateNormal];//这个有点意思哦,可以把内背景框给遮掩.图1
[ mySearchBar setShowsScopeBar:NO];
mySearchBar.tag = SEARCH_SEARCH_BAR;    //添加一个搜索     //    UITextField *searchField=[[UITextField alloc] init]; //        searchField.textColor = [UIColor whiteColor]; //        [searchField setBackground: [UIImage imageNamed:@"barNavStatus_IOS7"]];//在这添加灰色的图片 //        [searchField setBorderStyle:UITextBorderStyleNone]; //     //    NSUInteger numViews=[searchBar.subviews count]; //    for(int i = 0; i <= numViews; i++) { //        if([[searchBar.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { //            searchField = [searchBar.subviews objectAtIndex:i]; //        } //    }     // background button: cancel search, enable when search bar in focus backgroundButton =  [BasicViewElements allocBackgroundButtonWithFrame:CGRectMake(0.0, 0.0, kIPhonePortraitWidth, kIPhonePortraitHeight)   withBackgroundColor:[UIColor inactiveColor]  withSelector:@selector(backgroundButtonAction:)    withTarget:self    hidden:YES]; [self.view addSubview:backgroundButton];     [self.navigationController.navigationBar.superview addSubview:mySearchBar];//一定要及时把这个bar添加到图层上.这里用superview 是因为不想加到navigationbar上,加到别的地方又被阻挡,所以加到navigationbar的父图层        [refreshLabel removeFromSuperview];     [arrow removeFromSuperview];
}

图一

遇到的问题1:调节searchbar搜索框的颜色深浅

要求的效果是这样:

而实际的效果是这样

要调整效果,试过修改searchbar的背景图片,以及背景颜色,出来的效果都不对

 [self.searchBar setTintColor:[UIColor clearColor ]];//没有效果

  [self.searchBar setBarTintColor:[UIColor greenColor]];//改的背景色,但不是我要的

  [self.searchBar setBackgroundColor:[UIColor clearColor]];//没什么效果,改了边框颜色

在ios7.1下面,都没什么效果

不管怎么改 那个框框的深色始终是不变啊,尼玛!!!

后来找找找,发现是一开始的思路就就错了,想改它的颜色,尼玛 其实根本改不了人家的颜色.不过可以设透明度,颜色就浅了

UIView *segment=[[mySearchBar subviews] objectAtIndex:0];
   // [segment removeFromSuperview];
    [segment setAlpha:0.5];

这段代码就是,获取它的底层颜色,然后设置它的透明度

结果就是~~

遇到的问题1:调节纯代码界面的组件位置

直接在viewDidAppear里调节 设定他们的绝对位置
而在viewWillAppear里 则可以去设定navigationbar的外观,背景啊什么的
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.tabBarItem.title = MyLocalizedString(@"Search", @"");
    if(!IOS_7){
        [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @"header_logo"] forBarMetrics:UIBarMetricsDefault];
    }else{
        [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @"barNavStatus_IOS7"] forBarMetrics:UIBarMetricsDefault];
    }
    
    self.navigationItem.titleView = nil;
    self.navigationItem.title = nil;
     //[self.tabBarItem setImage:[UIImage imageNamed: @"header"]]	;
    // self.title = MyLocalizedString(@"Search", @"");
    //[self.navigationItem setTitleView:self.searchBar];

}

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    self.tableView.frame=CGRectMake(0, 100, 320, [UIScreen mainScreen].applicationFrame.size.height);
    self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;
    
   
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值