您的位置:首页 > 产品设计 > UI/UE

uisearchbar中自定义 放大镜图标 placeolder字体颜色 文本框背景色 兼容ios7

2014-01-20 17:01 549 查看
自定义searchbar,重写layoutSubviews就行了,只是ios7以下与IOS7获取UITextField的方法不同,下面是我测试通过的代码:
-(void)layoutSubviews
{
   
UITextField *searchField;
    searchField =
Nil;
   
if (!IsiOS7()) {
              
NSUInteger nums = [self.subviews
count];
       
for(int i =
0; i < nums; i++) {

            if([[self.subviews
objectAtIndex:i] isKindOfClass:[UITextField
class]]) {
                searchField = [self.subviews
objectAtIndex:i];
                [searchField
retain];
            }
        }
    }else{
        searchField = [self
valueForKey:@"_searchField"];
        [searchField
initWithFrame:CGRectMake(0,
0,IsPad()?768-60:self.frame.size.width,
44)];
        searchField.textAlignment =
NSTextAlignmentLeft;
    }
   
if(!(searchField ==
nil)) {

        [searchField setBorderStyle:UITextBorderStyleRoundedRect];
        //自定义放大镜图片
       
UIImage *image = [UIImage
imageNamed: @"search_ico2"];
       
UIImageView *iView = [[UIImageView
alloc] initWithImage:image];
       
if (!IsiOS7()) {
            iView.frame =
CGRectMake(10,
4, 24,
24);
            searchField.leftView.hidden =
YES;
            [searchField
addSubview:iView];
        }
       
else
        {
            iView.frame =
CGRectMake(0,
0, 26,
26);
            searchField.leftView  = iView;
        }
//修改文本框背景色
        searchField.backgroundColor =
VUIColorFromRGB(0xe9d9ca);
        searchField.textColor =
VUIColorFromRGB(0x000000);

        //改变placeholder字体颜色

        [searchField setValue:VUIColorFromRGB(0xcbbcab)
forKeyPath:@"_placeholderLabel.textColor"];
        [iView
release];
    }

    [super
layoutSubviews];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: