IOS开发之UISearchBar自定义外观

时间:2024-08-29 10:33:38
  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 alloc] initWithImage: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];