代码改变世界

IOS开发之UISearchBar自定义外观

2013-06-21 10:43  三戒1993  阅读(222)  评论(0编辑  收藏  举报
  MySearchBar.h如下:

@interface MySearchBar : UISearchBar

- (void)layoutSubviews;

@end

MySearchBar.m如下:

#import "MySearchBar.h"

@implementation MySearchBar

- (void)layoutSubviews {

UITextField *searchField;

NSUInteger numViews = [self.subviews count];

for(int i = 0; i < numViews; i++) {

if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { //conform?

searchField = [self.subviews objectAtIndex:i];

}

}


if(!(searchField == nil)) {

searchField.textColor = [UIColor redColor];

[searchField setBorderStyle:UITextBorderStyleRoundedRect];

UIImage *image = [UIImage imageNamed@"出发位置.png"];

UIImageView *iView = [[UIImageView allocinitWithImage:image];

searchField.leftView = iView;

}

[super layoutSubviews];

}

@end



应用:

MySearchBar *searchBar = [MySearchBar alloc]  initWithRct:CGRectMark(10, 10 ,100,30)];

   searchBar.backgroundColor = [UIColor clearColor];   //修改搜索框背景

    searchBar.showsScopeBar = NO;  

    

    [[searchBar.subviews objectAtIndex:0]removeFromSuperview];  //去掉搜索框背景

    for (UIView *subview in searchBar.subviews) {  

        if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {  

            [subview removeFromSuperview];  

            break;  

        }  

    } 

    

//    UIView *baView = [[UIView alloc] init];

//    baView.backgroundColor = [UIColor clearColor];

//    

//    [searchBar insertSubview:baView atIndex:1];